Thread m//g in list context: filling an array with matches (2 answers)
Opened by dukeofnukem at 2007-02-07 13:42

dukeofnukem
 2007-02-07 13:42
#74118 #74118
User since
2007-01-15
47 Artikel
BenutzerIn
[default_avatar]
Alohá!

Habe folgendes Problem:

In einem String der eine geslurpte Datei enthält befindet sich eine Zeile

Stepnames=X_yz_a, WX_qr, agbsar_asd, asdefe, ABC_XYZ

Nun würde ich gern @orgsteps damit füllen. Durch

Code: (dl )
my @orgsteps = $ref =~ /^Stepnames=(?:(\w+),?\s?)*?$/gm;


wird nur das letzte match in @argsteps gefüttert, auch

Code: (dl )
1
2
my @orgsteps; 
push @orgsteps, $1 while $ref =~ /^Stepnames=(?:(\w+),?\s?)*?$/gm;


liefert das selbe Ergebnis.

Gibt es keine Möglichkeit m// alle matches in list context zurückkommen zu lassen?

Was funktioniert ist natürlich

Code: (dl )
1
2
3
4
5
my @orgsteps; 
while ($ref =~ /^Stepnames=(.*?)$/gm) {
my $match = $1;
push @orgsteps, split /[,\s]/, $match;
}


aber das ist nun nicht wirklich elegant...
drum&bass is a state of mind

View full thread m//g in list context: filling an array with matches