Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

A twisty little maze of ampersands, all different

by haj (Vicar)
on Jun 08, 2021 at 22:54 UTC ( [id://11133670]=obfuscated: print w/replies, xml ) Need Help??

The following code prints a 0, a 1, a 2, and an empty line. But which is which?
use 5.020; sub one { 1 } sub two { 2 } say one&two ; say &one&two ; say &one&&&two ; say &&&one&&&two;

It is not that difficult to figure out, it was a accidental discovery while messing around with syntax highlighting. For the friends of JAPH, here's one with five consecutive ampersands:

use 5.020; sub s { say }; $_ = 'Jusst another Perl hacker'; s&s&&&&&s

Replies are listed 'Best First'.
Re: A twisty little maze of ampersands, all different
by kcott (Archbishop) on Jun 09, 2021 at 06:49 UTC

    G'day haj,

    ++ That's very interesting. Using

    perl -MO=Deparse,p -E 'sub one {1} sub two {2} say <ampersand-part>'

    I get:

    one&two : say one(&two); &one&two : say &one & two(); &one&&&two : say &one && &two; &&&one&&&two : &two if say $_ and &one;

    Just for completeness, each of those is preceded by:

    use feature 'current_sub', 'bitwise', 'evalbytes', 'fc', 'postderef_qq +', 'say', 'state', 'switch', 'unicode_strings', 'unicode_eval'; sub one { 1; } sub two { 2; }

    and ends with:

    -e syntax OK

    And I'm using 5.34.0.

    — Ken

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: obfuscated [id://11133670]
Front-paged by Discipulus
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (2)
As of 2025-07-12 07:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.