Thread Variablen in Sub's - strict meckert rum.
(20 answers)
Opened by popcorn5 at 2007-04-26 20:29
Das ist nicht strict, sondern warnings das da meckert.
Und wie Ronnie schon gesagt hat gibt dein Beispiel keine Warnung: Code: (dl
)
1 #!/usr/bin/perl Warscheinlich hast du eine subroutine innerhalb einer subroutine, die dann auf eine Variable der äußeren zugreift, so wie in Ronnies Beispiel: Code: (dl
)
1 #!/usr/bin/perl warnings denkt hier nämlich, du möchtest eine closure definieren und sagt dir, dass das so nicht geht. Der Wert von $var wird hier nur einmal auf 1 gesetzt und auch wenn er sich in der äußeren ändert hat das keinen Einfluss auf den Wert von $var in der inneren Subroutine. Vielleicht hast du dich ja nur vertippt, und wenn nicht würde ich dir raten die Variable als Parameter zu übergeben, oder die innere Subroutine als anon. Subroutine zu schreiben damit sie bei Aufruf der äußeren neu interpretiert wird. Code: (dl
)
1 # entweder Wenn es nicht anders geht, kannst du auch no warnings 'closure'; benutzen um die Warnung in diesem kurzen Bereich abzuschalten. MfG |