Thread Variablen in Sub's - strict meckert rum. (20 answers)
Opened by popcorn5 at 2007-04-26 20:29

pq
 2007-04-27 14:02
#76293 #76293
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=popcorn5,26.04.2007, 19:35]klar habe ich eine sub in einer sub.[/quote]
ach ja, das ist so klar, oder wie?
Quote
mein script müsste vereinfacht eigentlich so aussehen:

Code: (dl )
1
2
3
4
5
6
7
8
9
sub eins
{
  my $var=1;
  sub zwei
  {
      print $var."\n";
  }
  &sub zwei();
}

Danke, habe verstanden warum die warnung auftaucht. Da ich die Var nach der ersten sub nicht mehr brauche ist das ok, wenn ich die warnungen einfach abschalte, es funktioniert ja.

warnungen abschalten ist in den allermeisten faellen *nicht* die richtige lösung. die lösung wäre
Code: (dl )
1
2
3
4
my $zwei = sub {
 print $var, "\n";
};
$zwei->();

denn die subroutine namens "zwei" in deinem beispiel ist zwar in der
andren sub definiert, aber trotzdem von aussen aufrufbar und auch
nach der ersten subroutine noch gültig.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Variablen in Sub's - strict meckert rum.