Hmm, here we go; still two m//'s though:
$_ = "Here are 15 interesting values to parse: 12.3 14 acd 3.14 ..."; if (m/^Here are (\d+) ...*? parse:/g && (my @d = (m/\s*(\S+)/g)[0..$1-1]) ) { # do something with @d; perhaps worry about resetting pos() for any # more matching I might need to do ... } OK, can this be condensed to something simpler (but perhaps still readable?) -Aaron On Fri, 12 Jul 2002, Aaron J Mackey wrote: > $_ = "2aaa"; > @d = s/^(\d+)//; > push @d, m/(a)/ for 1..$d[0]; > > My "real" application is something like: > > $_ = "Here are 15 interesting values to parse: 12.3 14 acd 3.14 ..."; > # try to fill @d with 15 things in one step: > if (@d = m/^Here are (\d+) .*? to parse:(?:\s*(\S+)){\1}/) { > # do stuff with @d; > } > > Yes, I realize there are easy ways to accomplish what I want, but that's > not fun with perl, is it? > > -Aaron > -- Aaron J Mackey Pearson Laboratory University of Virginia (434) 924-2821 [EMAIL PROTECTED]