Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re: File handling? How to make the better one?

by tobyink (Abbot)
on Jun 11, 2012 at 15:08 UTC ( #975589=note: print w/replies, xml ) Need Help??

in reply to File handling? How to make the better one?

if ( system("ls -l | grep datafile.json") == 0 ) {

Sweet Jesus! Is this you trying to check whether a file exists?! You know Perl does have built-ins for checking the existence of a file...

if (-f "datafile.json") {

Using a few commodity modules from CPAN, you can make your life a lot easier...

#!/opt/lampp/bin/perl use strict; use CGI; use CGI::Carp 'fatalsToBrowser'; use File::Slurp qw< read_file write_file >; use JSON qw< from_json to_json >; use constant USER_ACCOUNT_FILE => '/opt/lampp/htdocs/datafile.json'; sub store_user_account { my ($name, $mail, $pass) = @_; my $existing_data = -f USER_ACCOUNT_FILE ? from_json(scalar read_file(USER_ACCOUNT_FILE, err_mode => 'c +roak')) : []; push @$existing_data, { name => $name, mail => $mail, pass => $pass, }; write_file( USER_ACCOUNT_FILE, { atomic => 1, err_mode => 'croak' }, to_json($existing_data), ); } sub process_cgi { my ($q) = @_; store_user_account( map { scalar $q->param($_) } qw(name mail pass), ); print $q->header('text/html'); print "<p>Finished file.</p>\n"; } process_cgi( CGI->new );
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

Replies are listed 'Best First'.
Re^2: File handling? How to make the better one?
by heatblazer (Scribe) on Jun 11, 2012 at 18:12 UTC

    Thanks, I don`t know all these tricks. I`ll most definitely look upon that JSON module too. Looks like it will make my life better.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://975589]
and the voices are still...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (6)
As of 2017-08-18 19:17 GMT
Find Nodes?
    Voting Booth?
    Who is your favorite scientist and why?

    Results (309 votes). Check out past polls.