calin has asked for the wisdom of the Perl Monks concerning the following question:

From: lwall@jpl-dexxav.JPL.NASA.GOV (Larry Wall) Newsgroups: news.groups,rec.arts.poems,comp.lang.perl Subject: CALL FOR DISCUSSION: comp.lang.perl.poems Date: 1 Apr 90 00:00:00 GMT
<SNIP>
print STDOUT q Just another Perl hacker, unless $spring

This is the famous Perl poem by Larry Wall, one of my favourites (the message quoted above, including the poem, appears also in the Camel Book). Unfortunately, it doesn't work in Perl5 anymore, because There can be whitespace between the operator and the quoting characters, except when "#" is being used as the quoting character. (...) (perldoc perlop - a useful feature indeed) , and the newline is a whitespace character.

Now I'm wondering - what is the best way to make this code run again? (I like functional art!). Ideally I'd like to run it unmodified. Simple pure Perl trick to restore q\n...\n functionality? Grab and compile Perl4? Perl4 emulator?

Other than that, I'm considering (with serious reservations) making minor modifications that wouldn't destroy the poem's spirit or visual appearance. Here's one (Anyway I don't like this approach - it's butchery, man!).

print STDOUT q, Just another Perl hacker, unless $spring;

Replies are listed 'Best First'.
Re: q\n...\n still possible? (unless $spring...)
by Abigail-II (Bishop) on Mar 24, 2004 at 22:10 UTC
    This is really a reply to CountZero's posting, but his posting leaves an unclosed <div> in the signature causing the form elements to appear (because it's gobbled up in the surpressed signature).

    Anyway, the answer is no.

    Abigail

Re: q\n...\n still possible? (unless $spring...)
by CountZero (Bishop) on Mar 24, 2004 at 19:51 UTC
    A wild suggestion: is there somewhere a magical variable which defines what characters are "whitespace" and change that value so it excludes \n?

    CountZero

    "If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law

Re: q\n...\n still possible? (unless $spring...)
by TilRMan (Friar) on Mar 25, 2004 at 03:28 UTC

    I'll just assume by "best" you mean shortest. :-)

    perl -0ne'y/\n/;/;eval' poem.pl

    though you could save three characters (I think) if you bypass the shell. Of course, this doesn't really make q\n\n work.

    -- 
    LP^>

      ++

      Cool!