C:\test>del junk.in && ren junk.in.org junk.in C:\test>type junk.in -i[*extension*] If the extension doesn't contain a "*", then it is appended to the end of the current filename as a suffix. If the extension does contain one or more "*" characters, then each "*" is replaced with the current filename. In Perl terms, you could think of this as: ($backup = $extension) =~ s/\*/$file_name/g; This allows you to add a prefix to the backup file, instead of (or in addition to) a suffix: $ perl -pi 'orig_*' -e 's/bar/baz/' fileA # backup to 'orig_fileA' Or even to place backup copies of the original files into another directory (provided the directory already exists): $ perl -pi 'old/*.orig' -e 's/bar/baz/' fileA # backup to 'old/fileA.orig' These sets of one-liners are equivalent: $ perl -pi -e 's/bar/baz/' fileA # overwrite current file $ perl -pi '*' -e 's/bar/baz/' fileA # overwrite current file $ perl -pi '.orig' -e 's/bar/baz/' fileA # backup to 'fileA.orig' $ perl -pi '*.orig' -e 's/bar/baz/' fileA # backup to 'fileA.orig' C:\test>test -B=BRS -E=ERS -R="Replacement text" junk.in C:\test>type junk.in -i[*extension*] If the extension doesn't contain a "*", then it is appended to the end of the current filename as a suffix. If the extension does contain one or more "*" characters, then each "*" is replaced with the current filename. In Perl terms, you could think of this as: ($backup = $extension) =~ s/\*/$file_name/g; This allows you to add a prefix to the backup file, instead of (or in addition to) a suffix: Replacement text Or even to place backup copies of the original files into another directory (provided the directory already exists): $ perl -pi 'old/*.orig' -e 's/bar/baz/' fileA # backup to 'old/fileA.orig' Replacement text $ perl -pi -e 's/bar/baz/' fileA # overwrite current file $ perl -pi '*' -e 's/bar/baz/' fileA # overwrite current file $ perl -pi '.orig' -e 's/bar/baz/' fileA # backup to 'fileA.orig' $ perl -pi '*.orig' -e 's/bar/baz/' fileA # backup to 'fileA.orig'