in reply to Re^4: Tiny Perl puzzle
in thread Tiny Perl puzzle

I can't test ATM

You gotta stop saying that :)

Contrary to AnoMonk I doubt space matters.

Sure it does, it matters how Deparse places the space, because it matters to perl

$ perl -w print(two (('two' == 'five') ? 'true' : 'false')); Unquoted string "two" may clash with future reserved word at - line 1. ^Z Name "main::two" used only once: possible typo at - line 1. Argument "five" isn't numeric in numeric eq (==) at - line 1. Argument "two" isn't numeric in numeric eq (==) at - line 1. print() on unopened filehandle two at - line 1.
That is exactly as deparsed with -p, behaves exactly like the original

Replies are listed 'Best First'.
Re^6: Tiny Perl puzzle
by LanX (Saint) on Jun 08, 2014 at 13:33 UTC
    > Sure it does, it matters how Deparse places the space, because it matters to perl

    it depends! ;-)

    > > most likely it depends if a function is known at compile time

    > perl open ONE, ">", "/tmp/tst"; sub ONE { "@_ \n Space doesn't matter! \n" } print ONE ( TWO ); # sub-call __END__ TWO Space doesn't matter!

    update

    ALSO:

    > perl open ONE, ">", "/tmp/tst"; print (ONE (TWO)); # filehandle __END__ > cat /tmp/tst TWO >

    BUT:

    > perl open ONE, ">", "/tmp/tst"; print ONE(TWO); # sub-call __END__ Undefined subroutine &main::ONE called at - line 3.

    Cheers Rolf

    (addicted to the Perl Programming Language)