update: I made the changes that I picked up, and for the moment, I have this. Thanks for the lessons, monks.All in all looks fine. Only
One good point of using $_ is that so many built in functions and operators default to it, so that you can write$_ =~ s/(\d+)/sprintf("%03d",$1)/e;
instead. Now, once you get used to Perl slang, this will become more intuitive and readable than the other way round. OTOH you may have chosen to dos/(\d+)/sprintf("%03d",$1)/e;
instead.(my $newname=$_) =~ s/(\d+)/sprintf("%03d",$1)/e;
Now, this is not strictly necessary:rename($oldname,$_) unless $oldname eq $_;
Of course it helps to avoid an unnecessary system call. But then again if it is a matter of a quick hack, I wouldn't do it. All in all I don't know if it is convenient efficiency-wise and wether it is or not depends strongly on the actual filenames. One could try to do a benchmark, but I'm not doing it now as my lazyness is currently overwhelming my hubris (BTW: see also Modules that significantly contribute to Laziness and Modules that significantly contribute to {Impatience,Hubris} - free ad! ;-)touch zizze; perl -le 'rename "zizze", "zizze" or die $!'
In reply to Re: Optimize file renaming.
by blazar
in thread Optimize file renaming.
by omega_monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |