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


in reply to [SOLVED] copying a file with .bak extension

From How can I use Perl's i option from within a program? the -i option changes $^I which in turn changes how <> works. That means the magic only works inside a while loop that uses <>. Your code with -i added on for me made a .bak copy but cleared the original and printed to the command line. The following code does what you requested.

#!/perl -i.bak while(<>) { print; if(eof) { print "\n"; print "##Copyright (C) 2012 by firstName lastName\n" ; } }