Not exactly on obfuscation, but I didn't know where else to put it...
Warning: neither __END__ nor @data can be used anywhere in the programs in question, lest it will fail.
#!/usr/bin/perl
use strict;
use warnings;
die("File does not exist.\n") unless -e $ARGV[0];
open(QUINE, "+<", shift);
my @quine = <QUINE>;
push @quine,
'my @data = <DATA>;'."\n",
'print @data, @data'."\n",
"__END__\n";
push @quine, @quine;
seek(QUINE, 0, 0);
print QUINE @quine;
close(QUINE);
my @data = <DATA>;
print @data, @data
__END__
#!/usr/bin/perl
use strict;
use warnings;
die("File does not exist.\n") unless -e $ARGV[0];
open(QUINE, "+<", shift);
my @quine = <QUINE>;
push @quine,
'my @data = <DATA>;'."\n",
'print @data, @data'."\n",
"__END__\n";
push @quine, @quine;
seek(QUINE, 0, 0);
print QUINE @quine;
close(QUINE);
my @data = <DATA>;
print @data, @data
__END__