Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re: Bareword rules?

by davido (Archbishop)
on Aug 23, 2012 at 05:19 UTC ( #989201=note: print w/replies, xml ) Need Help??

in reply to Bareword rules?

Perl version 5.004_04? Where did you get that?

  • perl -e 'print cat': "cat" is treated as an unopened file-handle (a typeglob) in package 'main', and compiled as print cat $_.
  • perl -e 'print cat dog': Indirect object syntax (the syntax that many wish would go away. It's Perl's equivalent of "the most vexing parse"). See perlobj#Invoking-Class-Methods. Compiles as print dog->cat;
  • perl -e 'print reverse cat': 'reverse' is treated as a function, and 'cat' is treated as a simple unquoted string. Compiles as print reverse('cat'); reverse is called in list context, so you don't see much happening since there's only one argument.
  • perl -e 'print reverse cat dog': There's the most vexing parse again: Compiles as print reverse dog->cat;

Perl probably has plenty of other "most vexing parses", so I shouldn't really direct that phrase at indirect object syntax in particular, but it's one easy target.

5.004_04      1997-Oct-15: Do you remember what specs your computer had in 1997? I think I had a Pentium-I with a 2GB hard drive and maybe 128MB RAM.


Replies are listed 'Best First'.
Re^2: Bareword rules?
by cheekuperl (Monk) on Aug 23, 2012 at 06:03 UTC
    Thanks for the explanation. I get it now :)
    This version of Perl is default installation on a Linux 2.6 machine in my office. We do use 5.10 though for all work purpose.
    And I didn't have a computer back in 1997 :)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://989201]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (6)
As of 2017-10-22 10:51 GMT
Find Nodes?
    Voting Booth?
    My fridge is mostly full of:

    Results (273 votes). Check out past polls.