pmv will apply the given Perl expression to each of the
file names. If the result is different from the original name, the
file will be renamed, linked, or symlinked.

If the expression is any of uc, lc, of ucfirst, pmv will DWIM.

pmv is a wrapper around File::PerlMove, which does most of the work.

EXAMPLES

To change editor backup files back to Perl sources:

    $ pmv 's/\.bak$/.pl/' *.bak
    foo.bak => foo.pl
    bar.bak => bar.pl

Lowcase file names:

    $ pmv lc *JPG

Shift numbered examples to a new section:

    $ pmv --reversed 's/^ex(\d)/"ex".($1+3)/ge' ex*
    ex42.dat => ex72.dat
    ex25.dat => ex55.dat
    ex22.dat => ex52.dat
    ex13.dat => ex43.dat
    ex12.dat => ex42.dat

Note that these need to be processed in reversed order, to prevent
ex12.dat => ex42.dat botching with the exisitng ex42.dat.