Thread Perl Hilfe (26 answers)
Opened by Julie at 2009-07-07 09:20

pq
 2009-07-07 10:10
#122904 #122904
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
also als erstes solltest du dein programm lauffähig machen. da fehlen so viele klammern und semikolons, dass das ding ja niemals kompilieren wird.
syntax von perl solltest du schon beherrschen.

beispielhaft hier mal eine subroutine in modernem perl:
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
use strict;
use warnings;
my $addresses = namenladen('adressen.txt');

# edit
# reagieren, wenn datei nicht geöffnet werden konnte
die "Konnte adressen.txt nicht öffnen: $!" unless $addresses;

print $addresses->{"larry wall"}, "\n";

sub namenladen {
    my ($filename) = @_;
    my %hash;
    # modernes open mit $fh statt bareword-filehandle
    open my $fh, '<', $filename or return;
    while (my $line = <$fh>) {
        chomp $line;
        # split bekommt eine *regex* als erstes argument, keinen string!
        # geht davon aus, dass es nur ein tab pro zeile gibt
        my ($name, $address) = split /\t/, $line;
        $hash{ $name } = $address;
    }
    return \%hash;
}

das perl, was ich bei dir sehe, ist steinzeitperl, es wird noch nicht mal durchgängig my() benutzt. aus welchem uralt-buch lernt ihr das?
Last edited: 2009-07-07 10:14:33 +0200 (CEST)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Perl Hilfe