Thread Subroutine xyz redefined at... verhindern
(8 answers)
Opened by bianca at 2015-02-23 08:29
Gibt es eigentlich eine Möglichkeit, Fehlermeldungen beim require abzufangen und das Hauptscript dann nicht sterben zu lassen?
Beispiel: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/perl use strict; use warnings; my @dispatchtab = ( { moduldatei => 'test_extern.pl', aufruf => \&testsub, }, { moduldatei => 'test_extern2.pl', aufruf => \&testsub, }, ); for my $ref (@dispatchtab) { my $script = 1; eval <<"EVAL_CODE"; require "$ref->{moduldatei}" or $script = 0; EVAL_CODE if ($script) { print $ref->{aufruf}->('a'); } } Die Scripte test_extern.pl und test_extern2.pl sehen identisch aus wie folgt: Code (perl): (dl
)
1 2 3 4 5 6 7 8 #!/usr/bin/perl use strict; use warnings; sub testsub { return "Gewonnen! Sub $_[0]\n"; } return '1'; Wie kann ich jetzt die Meldung Quoteabfangen und vor allen Dingen das Script nicht sterben lassen? 10 print "Hallo"
20 goto 10 |