http://www.perlmonks.org?node_id=180188


in reply to (jeffa) Re: Predicting the end of times...
in thread Predicting the end of times...

Why do I get this when I try your one liner..?
Can't find string terminator "'" anywhere before EOF at -e line 1.
-----
Of all the things I've lost in my life, its my mind I miss the most.
  • Comment on Re: (jeffa) Re: Predicting the end of times...

Replies are listed 'Best First'.
(jeffa) 3Re: Predicting the end of times...
by jeffa (Bishop) on Jul 08, 2002 at 14:46 UTC
    Are you running this on Win32? If so, try this one (which will not work in a Unix shell):
    perl -le"$x+=ord,print qq|$_ - |,ord for split//,HOLYBIBLE;print qq|To +tal: $x|"
    The problem is that Win32 wants the whole expression wrapped in double quotes (not single quotes), and Unix shells will interpolate any tokens in double quotes before Perl gets a chance to execute. This results in Yet Another Platform Dependance for Perl one-liners that contain dollar signs. You can escape the quotes, but that gets ugly (uglier?) real quick. For example, this should work on both platforms (but since i don't have a Win32 box available, i can't test it on that platform):
    perl -le"\$x+=ord,print\"\$_ - \",ord for split//,HOLYBIBLE;print\"Tot +al: \$x\""
    Update - nope, the previous one only works on Unix shells, Win32 doesn't need (or like) the escaped dollar signs. Thanks for testing this for me, BlueBlazerRegular and BrowserUk. :)

    jeffa

    L-LL-L--L-LL-L--L-LL-L--
    -R--R-RR-R--R-RR-R--R-RR
    B--B--B--B--B--B--B--B--
    H---H---H---H---H---H---
    (the triplet paradiddle with high-hat)