Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: Processing multiple files

by aitap (Curate)
on Dec 12, 2012 at 19:38 UTC ( #1008576=note: print w/replies, xml ) Need Help??

in reply to Processing multiple files

Generally, your code is OK, but I would like to point out some things which can be improved.

#declare the filehandeles outside the foreach loop
Why? You can write less code (e.g. open my $filehandle, ...) and (if you declare it inside the loop) Perl will close the filehandle automatically right after current iteration of the block finishes executing.

opendir (DIR, $dir) or die $!; my @textFiles = grep /\.txt/, readdir DIR;
For simple matching of directory contents diamond operator (glob) can serve using smaller code: my @files = <*.txt>; - without any need to open or close any directories.

By the way, you can open just "." instead of using Cwd. "." means "current directory" in modern operating systems.

my $text_file_out = $text_file; $text_file_out =~ s/\.txt//; $text_file_out = $text_file_out . '_new.txt';
This can be done in one operation: (my $text_file_out = $text_file) =~ s/\.txt$/_new.txt/;. Another option: my $text_file_out = $text_file =~ s/\.txt$/_new.txt/r; (/r modifier is available since Perl 5.14, see Regexp Quote Like Operators).

Sorry if my advice was wrong.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1008576]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (8)
As of 2018-03-18 20:01 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (230 votes). Check out past polls.