For those who are puzzled by quines, the following page
has a good explanation of why they always exist, and exactly how to go about writing one. They are much easier to write in languages which do not require fixed chunks of text, have abundant quoting facilities, are good at string manipulation, and support eval. You will note that Perl has all of these characteristics...
The basic idea is that you have a program that consists of source and data, where the data can be expanded out into source, and also be reproduced as data. Which is why it is nice to now have fixed source that has to be there, is nice to have good ways to quote the data, is nice to be able to manipulate the data, and why it is a bonus to be able to turn data into source and then eval it.
I do urge people to write their own. It is surprisingly easy to do, and the process is very instructive.