> I know I can write an if() clause to match every possible case, but I'm > wondering if there is a more general approach that would allow me to > dynamically match a varying number of extra columns within a single > expression.
You could shove all the data points into one parenthetical group in the first regex and then process them inside the if statement. Something like: my $line = 'HGYPG5 M1_LG OT 0.00E+00 2.00E-08 amps 1.000E-06 4.000E-11 2.000E-11 6.000E-11 4.000E-11 8.000E-11'; $line =~ s/[\r\n]/ /g; #line wrap # ... is everything else that i'm too lazy to type ;) if ($line =~ /^...(?:amps|volts)((?\s+[.0-9eE+-]+)+)$/) { # last backref contains all data points my (..., $datapoints) = (..., $6); my @datapoints = split //, $datapoints; # process based on (scalar @datapoints) } HTH, Dave -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>