Wujek dobra rada

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  ;-)
żal :)cieńkozaliczonyprawie dobrze :)trafiony zatopiony (No Ratings Yet)
Loading...

Posted in programowanie Tagged with: