in reply to Re^3: Scripts work when run individually but not when run as one compiled script
in thread Scripts work when run individually but not when run as one compiled script

You probably meant it implicitly, but delimiters cannot be word characters (or alphanumerical characters).

Heheh, try it

$ perl -le" $_ = q\e\; s OeOEO; print " E $ perl -MO=Deparse -le" $_ = q\e\; s OeOEO; print " BEGIN { $/ = "\n"; $\ = "\n"; } $_ = 'e'; s/e/E/; print $_; -e syntax OK $ perl -le" $_ = q 1e1; s 1e1E1; print " E $ perl -MO=Deparse -le" $_ = q 1e1; s 1e1E1; print " BEGIN { $/ = "\n"; $\ = "\n"; } $_ = 'e'; s/e/E/; print $_; -e syntax OK
  • Comment on Re^4: Scripts work when run individually but not when run as one compiled script
  • Download Code

Replies are listed 'Best First'.
Re^5: Scripts work when run individually but not when run as one compiled script
by shmem (Chancellor) on Jan 20, 2016 at 09:04 UTC

    This trick appeared on September 19, 2006 on the fun with perl mailing list - Punctuation Free Quine:

    s zzs vvxv and s ZVZchr 122Zie and s ZVZchr 122Zie and s ZVZchr 122Zie and s SxSlcfirstSe and s YZZxZYvvxvYi and print z and s ZVZchr 122Zie and s ZVZchr 122Zie and s ZVZchr 122Zie and s SxSlcfirstSe and s YZZxZYvvxvYi and print

    <update>

    As you might expect from the wonderful perl documentation, this is documented. From perlop:

    s/PATTERN/REPLACEMENT/msixpodualgcer
    ...
    Any non-whitespace delimiter may replace the slashes. Add space after the "s" when using a character allowed in identifiers.
    </update>

    perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'
Re^5: Scripts work when run individually but not when run as one compiled script
by Laurent_R (Canon) on Jan 20, 2016 at 13:57 UTC
    Alright, I was wrong, thank you for the correction. I am pretty sure I tested it once long ago and concluded that it did not work, but I guess my test was probably wrongly written.

    Surely I should have have better shut up rather than saying something wrong, but at least I learned something that I did not know. Thanks to both of you.

      Surely I should have have better shut up rather than saying something wrong

      No. Without somebody saying something wrong there would be no need for correction and this bit wouldn't have been revealed. Your remark triggered me to look through my mail folders... ah, there! Later I looked up the documentation, well this must have been documented somewhere... and I had overlooked that tiny bit in perlop as well. Which reminds me that I, shame on me, in contrast to Abigail, *still* didn't read all of the standard perl documentation. It is so dense.

      So, thanks to you as well, dear fellow.

      perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'