# $0 contains the name of the running script (ie this one) # $! contains error messages, if any # open file for reading open ME, "<$0" or die "Can't open myself, Perl says $!\n"; my @essence = ; close ME; # open file for writing (clobber existing, create if required) # name will be whatever this script called with .clone extension open MY, ">$0.clone" or die "Failed to clone myself $!\n"; print MY @essence; close MY; # open file for appending (add to end of file) open CLONE, ">>$0.clone" or die "Clone has disappeared $!\n"; print CLONE "\n\nI am just a clone of the program $0\n"; print CLONE "Just Another Perl Hacker\n", scalar localtime; close CLONE;