Thread Variablenübernahme in Subroutine
(7 answers)
Opened by Sven_123 at 2010-07-06 13:45
Hallo,
das liegt daran, dass Perl 5 keine ordentlichen lokalen Subroutinen kennt. Mit use warnings bekommst du die Warnung: Code: (dl
)
Variable "$x" will not stay shared at foo.pl line 9. Frag dich einfach, was passieren sollte, wenn du blubb() ausserhalb der Funktion bla aufrufst - welchen Wert sollte $x haben? Abhilfe schafft es, die Routine in einer lexikalischen Variable zu speichern: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 use warnings; use strict; bla(1); sub bla{ my $x=$_[0]; print "bla: $x"; my $blubb = sub { print " blubb: $x\n"; }; $blubb->(); if ($x <= 5){bla(($x+1))} } |