Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12547[/thread]

"die" in Modul nicht ausführen sondern Modul verlassen



<< >> 4 Einträge, 1 Seite
Gast Gast
 2008-09-26 17:49
#114958 #114958
Hallo

Ich habe vereinfacht gesagt folgende Situation:

Ein skript.pl bentutz ein Modul.pm und dort subs:

skript.pl:

use Modul.pm
Modul::subs();


in Modul.pm:

(..)
die print "error";
(..)


wie kann ich es schaffen dass Modul zwar das print ausführt nach dem "die" aber trotzdem nicht stirbt sondern einfach zurück springt zu skript.pl ?


return ist da natürlich keine Lösung, weil ich das "die" in den meisten fällen brauche.


An Modul.pm kann ich auch keine größeren Änderungen durchführen, sollte also wenn möglich alle in skript.pl laufen.


Viele Grüße
MB
betterworld
 2008-09-26 18:03
#114959 #114959
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub funktion_in_modul {
print "error";
die "error";
}

eval {
funktion_in_modul();
1;
} or do {
print "Es trat ein Fehler auf: $@";

# Oder einfacher:
warn; # Ohne Argumente, gibt "error caught at ..." aus.
};


Beachte, dass ich die print "error" getrennt habe.. ansonsten waere der Text der Exception "1", naemlich der Rueckgabewert von print.

perldoc -f eval
Gast Gast
 2008-09-26 21:08
#114962 #114962
Super...

Jetzt hab ich auch endlich mal gelernt wozu "eval" gut ist^^
lichtkind
 2008-09-27 03:26
#114977 #114977
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
vielleicht möchtest dir auch mal CPAN:autodie ansehen
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
<< >> 4 Einträge, 1 Seite



View all threads created 2008-09-26 17:49.