Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: NEWBIE Brain Teaser #2, by nysus

by koolade (Pilgrim)
on Apr 16, 2001 at 06:58 UTC ( #72755=note: print w/replies, xml ) Need Help??

in reply to NEWBIE Brain Teaser #2, by nysus

This was a good exercise. My biggest hurdle was figuring out why $_ held the value 2 and @_ contained qw(nothing nothing) rather than qw(alpha omega). After a bit of searching I think I found the answer.

I tracked down information on the qw operator and found this in the perlop manpage:

qw// is exactly equivalent to split(' ', q/STRING/); This equivalency means that if used in scalar context, you'll get split's (unfortunate) scalar context behavior...

So read the documentation on split and found:

If not in list context, returns the number of fields found and splits into the @_ array.

So is that pretty much answer? Is there any more magic to it?

Replies are listed 'Best First'.
qw// in Perl 5.6
by Eureka_sg (Monk) on Apr 16, 2001 at 07:26 UTC

    I believe that qw// no longer use split in 5.6. Instead, it's using the comma-operator. As a result, you are just trying to assign a list to a scalar. Thus, $_ will just hold 'nothing' and the answer for part c is "In the beginning there was alpha, in the end there will be omega."

    Disclaimer: I don't have 5.6 installed, so the above is pure speculation. Pls correct me if I'm wrong. : )

      Actually, with version 5.005, the script yields: "In the beginning there was nothing, in the end there will be nothing."

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (9)
As of 2016-10-20 20:45 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (281 votes). Check out past polls.