Schrift
[thread]7746[/thread]

Aufräumen: vor einem 'die' (Seite 2)



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
bloonix
 2006-03-01 03:17
#63344 #63344
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=murphy,01.03.2006, 01:58]END Blöcke könnten eine gute Lösung sein. Aber wenn Du aus irgendwelchen Gründen den $SIG{_ _DIE_ _} Handler überschreiben musst, kannst Du ja den alten Handler am Ende des neuen aufrufen.[/quote]
aber müssen die END-Blöcke nicht schon bei der Kompilierung
definiert sein? Die temporären Datei- und Pipenamen werden
allerdings im Laufe des Jobs erstellt.

Ich muss mir das Mal anlesen, hatte bisher noch nichts damit am
Hut...
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
esskar
 2006-03-01 06:51
#63345 #63345
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=opi,01.03.2006, 00:22][quote=esskar,28.02.2006, 19:41]wenn du $SIG{_ _DIE_ _} schon umleitest, hast du schon was du willst, oder nicht?[/quote]
Ja schon, aber durch ein "globales" Modul, dass alle Admins für
alle Skripts nutzen. Da kann ich leider nicht einfach mal eben im
dieHandler rumpfuschen, dass sähen die garnicht gerne :/[/quote]
Code: (dl )
1
2
3
4
5
my $oldSigDie = $SIG{_ _DIE_ _};
$SIG{_ _DIE_ _} = sub {
print "uhu\n";
&{$oldSigDie} if ref $oldSigDie eq 'CODE';
}


könnte so gehen. Hab es nicht ausprobiert.
murphy
 2006-03-01 12:40
#63346 #63346
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
[quote=opi,01.03.2006, 01:17][...]
aber müssen die END-Blöcke nicht schon bei der Kompilierung
definiert sein? Die temporären Datei- und Pipenamen werden
allerdings im Laufe des Jobs erstellt.
[...][/quote]
Es ist schon richtig, dass die END-Blöcke zur Kompilationszeit registriert werden. Aber sie können ja trotzdem zum Beispiel auf globale Variablen zugreifen und entsprechend deren Inhalt Aufräumaktionen ausführen.

Neben END-Blöcken mit globalen Listen von aufzuräumenden Objekten und Ketten von $SIG{_ _DIE_ _}-Handlern könntest Du vielleicht auch noch etwas über Objektorientierung und die DESTROY-Methode basteln.
When C++ is your hammer, every problem looks like your thumb.
Dubu
 2006-03-01 15:48
#63347 #63347
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Der Nachteil mit den END-Blöcken ist, dass sie nicht bedingt abgearbeitet werden können - jeder Block, der im Code definiert ist, wird auch am Ende abgearbeitet, der zuletzt definierte zuerst. Das schränkt die Anwendbarkeit ein.
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2006-02-28 17:51.