[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Omaha.pm] Using map to grab multiple fields from file...
(Sorry for the short e-mail. Let's try that again... - Dan)
I have a file that has a number of lines in it. Two lines contain data
I want, the rest are unimportant. These two lines can appear most
anywhere and in any order.
What I'm currently doing is this:
$val1 = 0;
$val2 = 0;
while (<FILEHANDLE>) {
$val1 = $1 if /^COUNT:\s*(\d*)$/;
$val2 = $1 if /^SIZE:\s*(\d*)$/;
last if ($val1 and $val2);
}
The "last if" statement is my attempt to exit sooner rather than working through the entire file.
I had tried to setup a map function something like this:
($val1, $val2) = map {
return ($1, $val2) if /^COUNT:\s*(\d*)$/;
return ($val1, $2) if /^SIZE:\s*(\d*)$/;
} <FILEHANDLE>;
...but I get a "can't return outside of subroutine.
Am I better off with my while loop? It passes the "3AM readability test" in my opinion.
Dan
--
"Quis custodiet ipsos custodes?" (Who can watch the watchmen?) -- from the Satires of Juvenal
"I do not fear computers, I fear the lack of them." -- Isaac Asimov (Author)
** *** ***** ******* *********** *************