Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

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.


Dave


Comment on Re: Bareword rules?
Select or Download Code
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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://989201]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (8)
As of 2015-07-02 23:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (47 votes), past polls