Thread Warum sind Perl-Programmierer kaum noch gefragt? (27 answers)
Opened by rosti at 2012-02-21 19:30

rosti
 2012-02-22 10:23
#156303 #156303
User since
2011-03-19
3196 Artikel
BenutzerIn
[Homepage]
user image
Zugegeben: Die in der OOP liegenden Stärken von Perl habe ich relativ spät erkannt. Ich poste mal einen Code, der seit über 10 Jahren möglich ist und frage mal im Vorab: Seit wann programmiert Ihr Perl-OOP? Und welche Erfolge habt Ihr damit erreicht?

Hier nun der Code nach MVC/MVP Design:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# einfache Klasse für die Ausgabe eines Scripts
# welches Eingaben erwartet, die zu prüfen sind
# Benutzereingaben werden über Exceptions gehandelt
# Beachte \n am Ende eines die() zur Unterdrückung des Backtrace
package OUT;

use strict;
use warnings;
use Getopt::Long;

# Construction
sub new{
        my $class = shift;
        # Datenversteck für Ein/Ausgabe
        my $self = bless{
                STASH => {
                        name => undef,
                        vname => undef,
                },
        }, $class;
        return $self;
}

# Darstellung auf der Konsole
# nenne es presenter oder view
sub presenter{
        my $self = shift;
        # feststellen ob es Parameter gibt
        # den code der entsprechenden Methode laden
        # und auf Exception prüfen
        if(@ARGV){
                my $code = $self->can('control');
                my $result = '';
                # mögliche Exception fangen
                eval{ $result = $self->$code };
                if($@){
                        print "Eingabefehler: $@\n";
                }
                else{
                        print $result;
                }
        }
        else{
                print $self->default;
        }
}

########################### controller methods ############################
# keine Eingabe-Parameter
# stellt die Sicht ohne Eingaben dar
sub default{
        my $self = shift;
        return "Bitte --name=<Name> und --vname=<Vorname> eingeben\n";
}

# Eingabe-Parameter liegen vor
# Anwendung Exception-Model: Der Code wird später geprüft
sub control{
        local $SIG{__WARN__} = sub{die "@_\n"}; # Warnungen GetOptions
        my $self = shift;
        GetOptions(
                'name=s' => \$self->{STASH}{name},
                'vname=s' => \$self->{STASH}{vname},
        );
        die "Name nicht eingegeben\n" unless defined $self->{STASH}{name};
        die "Vorname nicht eingegeben\n" unless defined $self->{STASH}{vname};
        return qq(
                Name:    $self->{STASH}{name}
                Vorname: $self->{STASH}{vname}
        );
}
1;#########################################################################

# Sehr einfache Application
package main;
my $out = OUT->new;
$out->presenter;

Last edited: 2012-02-22 10:25:08 +0100 (CET)

View full thread Warum sind Perl-Programmierer kaum noch gefragt?