this is just MHO, but this one seems a bit easier to understand... (5th example down on the quine page's perl quine page and changed to use strict;and use warnings;):
#!/usr/bin/perl
use warnings;
use strict;
$_=<<'eof';eval $_;
print "#!/usr/bin/perl\nuse warnings;\nuse strict;\n\$_=<<'eof';eval \
+$_;\n${_}e
of\n"
eof