Wie zur Laufzeit den Namen der garade aktiven Sub herausfinden?

Wie zur Laufzeit den Namen der garade aktiven Sub herausfinden?

am 01.02.2007 20:26:15 von Bernd Giegerich

Moin,


ich suche eine elegante Möglichkeit, unter Perl 5.8.8 (wenn möglich,
generell unter 5.8.x) zur Laufzeit den Namen der Sub zu bestimmen, in
der ich gerade bin.

Ähnlich wie mir __PACKAGE__ den Namen des Packages liefert, nur eben für
die Sub. Zur Verdeutlichung:


# ------------------------------------------------------------ ---------
MySub1();
MySub2();

sub MySub1 {
print "Sub " . gesuchte_variable_oder_funktion . " gestartet\n";
}

sub MySub2 {
print "Sub " . gesuchte_variable_oder_funktion . " gestartet\n";
}

__END__
# ------------------------------------------------------------ ---------

....sollte so etwas in die Richtung....

Sub MySub1 gestartet
Sub MySub2 gestartet

....ausgeben.

Gibt's da etwas eleganteres, als sich selbst eine zusätzliche Helper-Sub
zu bauen, die dann mit caller() herum fuhrwerkt und den gewünschten Wert
zurück liefert?

Gruss,
Bernd

Re: Wie zur Laufzeit den Namen der garade aktiven Sub herausfinden?

am 01.02.2007 20:32:11 von Frank Seitz

Bernd Giegerich wrote:

> Gibt's da etwas eleganteres, als sich selbst eine zusätzliche Helper-Sub
> zu bauen, die dann mit caller() herum fuhrwerkt und den gewünschten Wert
> zurück liefert?

(caller(0))[3]

Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel