1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$VAR1 = \{
'returncode' => 'readfile_done',
'returndata' => [
'# options',
'# $Date: 2011/08/30 14:07:25 $ $Author: root $ $Revision: 2.53 $',
'# ',
'# ab OpenBSD 4.1 ist keep state default fuer die regeln',
'# wenn man regeln haben wie die nicht stateful sind muss die option no state gesetzt werden',
'#',
'######',
'# WikiRef 10',
'# fw1 interfaces',
'include "/etc/fw/pf.interfaces"',
'',
'# WikiRef 20',
'# allgemeine parameter',
1
2
3
4
5
my $z=0;
while ( ${$content}->{'returndata'}->[$z] ) {
print ${$content}->{'returndata'}->[$z],"\n";
$z++;
}
1
2
3
4
5
my $z=0;
while ( defined ${$content}->{'returndata'}->[$z] ) {
print ${$content}->{'returndata'}->[$z],"\n";
$z++;
}
while( exists(${$content}->{'returndata'}->[$z]) )
1 2 3
for my $z (0..$#{${$content}->{'returndata'}} ) { print ${$content}->{'returndata'}->[$z]."\n"; }
1
2
3
for my $z (0..$#{${$content}->{'returndata'}} ) {
print ${$content}->{'returndata'}->[$z]."\n";
}
1
2
3
foreach my $z (0..$#{${$content}->{'returndata'}} ) {
print ${$content}->{'returndata'}->[$z]."\n";
}
2011-09-01T08:02:00 topegHäufig ist es aber besser mit exists zu testen, denn mit einem Test auf defined wird ein Eintrag angelegt wenn er nicht existiert.
1
2
3
4
5
6
7
$ perl -wE'
my $foo = { bar => [1,2,3]};
say 1 if defined $foo->{bar}->[42];
say for @{ $foo->{bar} }'
1
2
3
1 2 3 4 5 6 7 8
my $foo = { bar => [1,2,3] }; exists $foo->{bar}->[42]; # legt gar nix an defined $foo->{bar}->[42]; # legt gar nix an # genauso mit einem hash of hashes $foo = { bar => { a => "b" } }; exists $foo->{bar}->{boo}; # legt gar nix an defined $foo->{bar}->{boo}; # legt gar nix an