hi all,

As with other releases of File::Slurp I think this list should be told
about it since this module is so easy to use and makes your Perl much
simpler and also faster.

uri

Have you ever wanted to use perl -pi inside perl? did you have the guts
to localize $^I and @ARGV to do that? now you can do that with a simple
call to edit_file or edit_file_lines in the new .018 release of
File::Slurp. Now you can modify a file in place with a simple call.

edit_file reads a whole file into $_, calls its code block argument and
writes $_ back out the file. These groups are equivalent operations:

        perl -0777 -pi -e 's/foo/bar/g' filename

        use File::Slurp qw( edit_file ) ;

        edit_file { s/foo/bar/g } 'filename' ;

        edit_file sub { s/foo/bar/g }, 'filename' ;

        edit_file \&replace_foo, 'filename' ;
        sub replace_foo { s/foo/bar/g }

edit_file_lines reads a whole file and puts each line into $_, calls its
code block argument and writes each $_ back out the file. These groups are
equivalent operations:

        perl -pi -e '$_ = "" if /foo/' filename

        use File::Slurp qw( edit_file_lines ) ;

        edit_file_lines { $_ = '' if /foo/ } 'filename' ;

        edit_file_lines sub { $_ = '' if /foo/ }, 'filename' ;

        edit_file \&delete_foo, 'filename' ;
        sub delete_foo { $_ = '' if /foo/ }

So now when someone asks for a simple way to modify a file from inside
Perl, you have an easy answer to give them.


-- 
Uri Guttman  ------  u...@stemsystems.com  --------  http://www.sysarch.com --
-----  Perl Code Review , Architecture, Development, Training, Support ------
---------  Gourmet Hot Cocoa Mix  ----  http://bestfriendscocoa.com ---------

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to