use IO::File; ... my $good = getvalue($file, $vals[0]); ... sub getvalue { my ($file, $val) = @_; my $val; my $f = new IO::File $file, "r" or die "Can not open file"; while (my $line = <$f>) { if ($line =~ /$val/) { return (split /,/, $line)[1]; # return 2nd field } } return undef; }