Thread smart match (3 answers)
Opened by Gast at 2009-10-23 16:06

betterworld
 2009-10-23 17:29
#127281 #127281
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
2009-10-23T14:57:04 GwenDragon
Code: (dl )
while ( $string ~~ qr/(\d\d)\s/g ) {

Müsste es sein.

Das geht so nicht (gibt einen Syntaxfehler bei mir: Bareword found where operator expected).

Zunächst ist das /g-Flag nicht ein Regex-Flag (wie etwa /i), sondern ein Flag fuer den m-Operator, und Du hingegen verwendest den qr-Operator.

Wenn man das /g-Flag nicht braucht, kann man übrigens ganz normal schreiben:
Code: (dl )
$string ~~ /blah/;

d.h. der Smartmatch funktioniert hier auch ohne qr.

Allerdings ist das, was der OP will, nämlich das schrittweise Abarbeiten der Matches durch /g im skalaren Kontext, wohl nicht mit "~~" möglich, das geht wohl nur mit "=~". Kann ich zwar nicht belegen, aber ich kriege es durch Probieren nicht hin.

View full thread smart match