Thread join (//, @buffer): join mit // hängt von Matching ab
(16 answers)
Opened by El Ron at 2007-02-07 10:35 Code: (dl
)
1 my $dummy = "Y"; Du lässt $dummy gegen Y matchen. $dummy matcht also erfolgreich. // ist also jetzt auf die Regex /Y/i gesetzt. Dein join ausgeschrieben bedeutet folgendes: Code: (dl
)
join( $_ =~ m/Y/i, @buffer) $_ ist bei dir nicht gesetzt. Es matcht also nie. Der Rückgabewert des Matches ist undef. Dieses undef wird nun benutzt als Kleber um die Werte zusammen zu fügen. Hättest du z.B. vorher $_ auf 'Y' gesetzt, dann würde es matchen und der Rückgabewert ist wahr (1). Dieser Wert wird dann als Kleber benutzt. Code: (dl
)
1 my $dummy = "Y"; Naja hier das gleiche in Grün. Allerdiengs matcht jetzt $dummy nicht auf =~ /N/i; Das hat zur Folge das // eine Leere Regex bleibt. Dein join ausgeschrieben bedeutet wieder folgendes: Code: (dl
)
join( $_ =~ //, @buffer) Da du noch keine gematchte Regex hast, hast du hier eine Leere Regex drin stehen. Eine Leere Regex matcht ebenfalls auf einen Leeren String. $_ ist ja noch Leer bei dir. Die Regex ist also wahr und gibt 1 als Wert zurück. Dieses wird nun wiederrum als Kleber benutzt. War doch einfach. Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|