Vhaerun Posted March 10, 2008 Report Share Posted March 10, 2008 Perl time again !In tutorialele de acest tip o sa va arat niste chestii perl mai mult sau mai putin folosite , mai mult sau mai putin stiute .1.Cum sa rulezi o bucata de cod o anumita perioada de timpSe foloseste functia alarm .Exemplu :$SIG{ALRM}=sub { die "Time-out!\n" };print "Ai 5 secunde sa iti introduci numele\n";alarm 5;<STDIN>;alarm 0;Chestia asta se traduce astfel : functia alarm va trimite un semnal ALARM scriptului dupa numarul de secunde specificat. Daca se va executa codul ce urmeaza dupa ea , alarm e anulat . Daca nu , semnalul va fi tratat cu functia aflata la cheia $SIG{ALRM} . Pentru a nu iti opri executia scriptului , alarm se foloseste intr-un eval .2.Cum scot elemente dintr-o lista care sa indeplineasca o anumita conditie?my @array=(1,2,3,4,5,6,7,8,9,10);my @pare;for my $numar(@array) { push(@pare,$numar) if($numar %2==0);}YEAH RIGHT!!! Daca nu te poti dezlipi de Turbo Pascal faci asa Daca vrei s-o faci The Perl Way , faci asa :my @array=(1,2,3,4,5,6,7,8,9,10);my @pare=grep { $_ % 2==0 } @array;3.Fa o operatie asupra tuturor elementelor dintr-un arrayAi putea sa faci asa :my @array=(1,2,3,4,5,6);for my $nr (@array) { $nr+=10;}sau ai putea face asa :my @array=(1,2,3,4,5,6);map { $_+=10 } @array;4.Cum simplific o structura repetitivaSa zicem ca apelez o functie pentru a seta valoarea unei variabile , si imi convin doar anumite valori . Ex : vreau doar culoarea movmy @culori=qw(alb negru rosu mov violet);my $culoare="incolor";while(($culoare=$culori[rand @culori]) ne "mov") { ;}print "$culoare\n";Eu prefer sa scriu asa :my @culori=qw(alb negru rosu mov violet);my $culoare="incolor";NEXT_COLOR:$culoare=$culori[rand @culori];goto NEXT_COLOR if($culoare ne "mov");print "$culoare\n";Care e mai lizibila ? Until next time . Quote Link to comment Share on other sites More sharing options...
moubik Posted March 11, 2008 Report Share Posted March 11, 2008 nice tips and tricks Quote Link to comment Share on other sites More sharing options...
Nytro Posted March 11, 2008 Report Share Posted March 11, 2008 Termin cu Java si ma apuc de Perl Quote Link to comment Share on other sites More sharing options...