Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^2: Using Data::Dumper to dump an array of hashes to a file

by alexm (Chaplain)
on Aug 14, 2008 at 22:06 UTC ( [id://704437]=note: print w/replies, xml ) Need Help??


in reply to Re: Using Data::Dumper to dump an array of hashes to a file
in thread Using Data::Dumper to dump an array of hashes to a file

sub in { my ( $file ) = @_; open my $fh, '<', $file or die "Can't read '$file': $!"; local $/ = undef; # read whole file my $dumped = <$fh>; close $fh or die "Can't close '$file': $!"; return @{ eval $dumped }; }

Wouldn't do or require accomplish just the same task, but more succinctly?

Replies are listed 'Best First'.
Re^3: Using Data::Dumper to dump an array of hashes to a file
by kyle (Abbot) on Aug 15, 2008 at 01:21 UTC

    Mostly, yes.

    I wouldn't use require because it would decline to load the same file twice (unless you monkey with %INC). Also, I don't know if it would return the value returned by the file (I think it doesn't).

    Using do is a better choice, but the error handling is different. Here's some code I wrote a while back after examining the docs for a while:

    if ( ! defined do $rc_file ) { die "Error in '$rc_file': $@" if $@; die "Can't read '$rc_file': $!" if $!; warn "'$rc_file' returned undef as last value"; }

    It's not as easy as just "return @{ do $file }", but I admit I like it better. Using do has some other differences noted by the documentation, but nothing I'd expect to trip us up in this case.

      I wouldn't use require because it would decline to load the same file twice (unless you monkey with %INC). Also, I don't know if it would return the value returned by the file (I think it doesn't).

      It actually does :)

      I've been using require for a while to read simple config files: it does syntax error checking and the fact that it only loads once was not a big deal. However, I agree that YAML (or Config::IniFiles et al.) are safer and should be preferred.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (1)
As of 2026-01-18 07:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What's your view on AI coding assistants?





    Results (121 votes). Check out past polls.

    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.