http://www.perlmonks.org?node_id=11152783


in reply to Re: How to Rename files in multiple directories with a Perl script using an array of hashes.
in thread How to Rename files in multiple directories with a Perl script using an array of hashes.

Now that I have corrected the glob path array, only the FIRST _ character is being replaced, rather than every instance in the filename.

I just added an additional _ to a file in my test area and this problem occurs with my test code too.

Here's an example, names slightly modified.

rename(/mnt/hgfs/Subscriptions/Dr Wendy Testaburger/Dr Wendy Testaburg +er 20230523 Post_Stan_world 1920x1080.mp4, /mnt/hgfs/Subscriptions/Dr + Wendy Testaburger/Dr Wendy Testaburger 20230523 Post Stan_world 1920 +x1080.mp4)

For ease of reference, here is the relevant code:

my @path = glob("'$Subscriptions_Path/$_->{Lib_Sub_Path}/*'"); if (@path != 0) { File::Rename::rename(\@path,{ _code => sub { s/_/ / }, verbose => 1, no_action => 1, } ); };