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


in reply to Simple Perl file rename

If all of your files are in a directory or hierarchy, here's a nice one-liner using File::Find from the command line:

perl -MFile::Find -e 'find sub{ rename $_, (m/.*\s(.*)\z/)[0] }, q{.}'

It's a little obfuscated, but the only part that might be confusing is the pattern match, wrapped with parens with an array index, which simply returns the first result of the match.

perl -e 'split//,q{john hurl, pest caretaker}and(map{print @_[$_]}(joi +n(q{},map{sprintf(qq{%010u},$_)}(2**2*307*4993,5*101*641*5261,7*59*79 +*36997,13*17*71*45131,3**2*67*89*167*181))=~/\d{2}/g));'