Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re^2: reading values from file

by perlNinny (Beadle)
on Jan 24, 2006 at 20:53 UTC ( #525312=note: print w/replies, xml ) Need Help??

in reply to Re: reading values from file
in thread reading values from file

Nope, not homework. Yes, it is snippets of a larger script...these are just some examples of what I got to work but know there is a better way. Yes, I did forget the closing brace but, as I said, its just a snippet. However, I wonder why its bad to close the infile to exit the loop? It does two things, closes the file and exits the loop.

Replies are listed 'Best First'.
Re^3: reading values from file
by Aristotle (Chancellor) on Jan 25, 2006 at 18:25 UTC

    It works, but itís surprising. I had to blink and stare for a moment before I noticed that it actually does do what you intended. All in all, considering the other things I mentioned, Iíd write the loop like this:

    while ( <INFILE> ) { next if not /ver = '(.*?)'/; $old_version = $1; close INFILE; last; }

    Better yet, if you just opened the file:

    { open my $fh, '<', $filename or die "Can't open $filename: $!\n"; while ( <$fh> ) { next if not /ver = '(.*?)'/; $old_version = $1; last; } }

    In which case $fh goes out of scope at the end of the block and the file is closed automatically; much nicer. I only explicitly close files that I write to (because they you want to check the return value of close, which may fail for such reasons as ďdisk fullĒ or the like).

    In fact, if the file is so small that you donít mind slurping it, you could just say

    use List::Util qw( first ); my $old_version = do { open my $fh, '<', $filename or die "Can't open $filename: $!\n"; first { /ver = '(.*?)'/ } <$fh>; };

    Makeshifts last the longest.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://525312]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2022-08-19 05:45 GMT
Find Nodes?
    Voting Booth?

    No recent polls found