Thread Regex - Exakten String ersetzen (6 answers)
Opened by YAPD at 2021-04-18 18:02

barney
 2021-04-18 19:41
#193220 #193220
User since
2008-08-31
124 Artikel
BenutzerIn
[Homepage] [default_avatar]
Haller,

die Extraktion der letzten Sub aus den gesplitteten caller ist etwas verunglücket.

Code: (dl )
my $LH_Caller = ( split( /::/ , ( caller( 1 ) )[ 3 ] ) )[ -1 ];


Der Ausdruck split( /::/ , ( caller( 1 ) )[ 3 ] liefert bereits einen einzelnen String. ( $String )[-1]  liefert den letzten Wert der Liste zurück also $String. Das ()[-1]  kann man sich also sparen.

[ 3 ] liefert den vierten Wert einer Liste zurück. Gewünscht ist aber anscheinend der letzte Wert. Die richtige Lösung lautet also:
Code: (dl )
my $LH_Caller = (split( /::/ , ( caller( 1 ) )[ -1 ];


Schöner ist vielleicht:
Code: (dl )
my ($LH_Caller) = reverse split /::/, caller(1);

View full thread Regex - Exakten String ersetzen