Yes exactly. If the regex doesn't matchm $fields2 will be undef. Also, I think you need to put parenthesis around your ( split /;/ ) so that the context is the same (list context):
use strict;
my @fields;
my $RS = ' ';
my $rv = &do_this;
print $rv;
sub do_this {
while(<DATA>){
next unless $. == 2;
@fields = ( split /$RS/, $_ ), last if $. == 2;
@fields = ( split /$RS/, $_ ), last if $. == 2;
}
return $fields[2] =~ /\d+/;
}
__DATA__
This is line one.
I found 12 on line two.
And This was found on line three.
Change 12 on line to some text and try removing the parens around the split... and you will see the diffs.
JamesNC
|