Thread Bad name after...
(52 answers)
Opened by bianca at 2015-02-19 12:08
Nochmal: nur der Code in der Schleife darf geändert werden.
OK, ich erweitere den Testaufbau noch weiter, damit das Problem klar wird: Hauptscript: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #!/usr/bin/perl use strict; use warnings; my @dispatchtab = ( { moduldatei => 'test_extern.pl', aufruf_sub => \&testsub, }, { moduldatei => 'test_extern2.pl', aufruf_sub => \&testsub, }, # hier sind natürlich noch ganz viele ); foreach my $ref (@dispatchtab) { # nur der Code innerhalb dieser Schleife darf geändert werden, sonst nichts! { require $ref->{moduldatei}; package modulscope; $ref->{aufruf_sub}->('a'); } } test_extern.pl und test_extern2.pl: Code (perl): (dl
)
1 2 3 4 5 6 7 8 #!/usr/bin/perl use strict; use warnings; sub testsub { print "Gewonnen! Sub $_[0]\n"; } return '1'; Wie es hier gezeigt ist wirft es Quote Wenn ich require und package tausche wirft es Quote Wenn ich Code (perl): (dl
)
1 2 3 4 5 6 7 8 foreach my $ref (@dispatchtab) { # nur der Code innerhalb dieser Schleife darf geändert werden, sonst nichts! { package modulscope; require $ref->{moduldatei}; } modulscope::$ref->{aufruf_sub}->('a'); } Quote Ich möchte haben: Quote Wie erreiche ich das unter der Prämisse, dass nur der Code in der Schleife geändert werden darf? 10 print "Hallo"
20 goto 10 |