Tym razem o perlu :-)
Mamy następujący kod :
#!/usr/bin/perl -w
#use strict;
my $pid;
my $hasz = { 'p' => 1 };
my $count = 0;
while (!defined $pid && !$pid){
last if $count > 10 ;
foreach $pid (keys %{$hasz}){
my $tmp = $pid;
}
$count++;
print "$count \n";
}
Pisząc w ten sposób nie spodziewajcie się że while zakończy swoje działanie :P Pomimo tego że w foreachu nie ma napisane jawnie ‘foreach my $pid’ to perl zaczyna traktować w tym momencie zmienna $pid jako zmienna lokalna i nie wyjdzie z while ;-) Aby osiągnąć zamierzony efekt można napisac :
#!/usr/bin/perl -w
#use strict;
my $pid;
my $hasz = { 'p' => 1 };
my $count = 0;
while (!defined $pid && !$pid){
last if $count > 10 ;
foreach my $tpid (keys %{$hasz}){
my $tmp = $tpid;
$pid = $tpid;
}
$count++;
print "$count \n";
}
Fajnie nie? :D
Wujek walet ;P
P.S.
tak tak wiem że sie pomyliłem i zrobiłem głupote ;-)