SOLUTION
--------

The string 'he Perl Journal' is extracted from the first line of the
README file, which should be in the current directory. The first
character of the string is transformed to 'Y' in the subroutine
Journal().  After that, the string is transformed back to 'The ...' in
the subroutine Print, and printed.

The two major obfuscations in the script are:

 1. The subroutine The is actually defined in the eval in the subroutine
    Perl. As there is a "\t" in the first line containing "Ye Perl
    Journal", the eval only ends at the second such line. This explains
    why I had to transorm the string to 'Ye ...' and back: to get a
    whitespace in the eighth column. It is because of this that the script
    does not print 'Just Another Perl Hacker', as you might think upon
    first inspection.

 2. The first substitution in Print ends at the slashes that look like
    they are in the first line of the comment and is equivalent to
    s/^.*$/shift/ex .

The minor obfuscations, which you probably found already, include:

 -  The second substitution in Print ends at &miggem; this is not a call
    to the subroutine miggem, but just a collection of modifiers.
 -  Because of the first line of Journal (local...), $" is set to "\n"
    at the end of that subroutine.
 -  The operand on the right of the ... operator (here 'last') is
    evaluated at the second line of input. This terminates the program.
 -  In Journal, $1 is xor'ed with the result quotemeta(regexp). The
    regexp returns 1, and I use the quotemeta to stringify it to '1'.
 -  'y zygzyz' is a fancy way of saying 'x 2':
     y zygzyz => y/yg/y/ => tr/yg/y/

-- 
Eugene van der Pijll <pijll@phys.uu.nl>
