Thread Bad name after... (52 answers)
Opened by bianca at 2015-02-19 12:08

bianca
 2015-02-19 17:05
#179741 #179741
User since
2009-09-13
6977 Artikel
BenutzerIn

user image
Das Problem scheint nicht klar geworden zu sein. Ich versuchs mal mit einem größeren Testaufbau, der mein Problem richtig nachstellt:

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
#!/usr/bin/perl
use strict;
use warnings;

my @dispatchtab = (
    {
        moduldatei      => 'test_extern.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!
    {
        package modulscope;
        require $ref->{moduldatei};
        $ref->{aufruf_sub}->('a');
    }
}

sub testsub {
    print "Fehler, falsche sub!\n";
}


test_extern.pl:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl
use strict;
use warnings;

# dieser Code hier steht in der test_extern.pl
sub testsub {
    print "Gewonnen! Sub $_[0]\n";
}
return '1';


Frage dazu: Wie - mit welcher Syntax im Hauptscript - schaffe ich es, als Ausgabe "Gewonnen! Sub a" ohne Fehler - insbesondere ohne "Subroutine testsub redefined at test_extern.pl..." und ohne "Fehler, falsche sub!" - hinzubekommen?
Bedingung: nur der code in der Schleife darf geändert werden, sonst nichts.
10 print "Hallo"
20 goto 10

View full thread Bad name after...