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

Re: Processing multiple files

by aitap (Deacon)
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.

Comment on Re: Processing multiple files
Select or Download Code

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (6)
As of 2015-12-02 04:58 GMT
Find Nodes?
    Voting Booth?

    My keyboard shows this many letters:

    Results (34 votes), past polls