Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: <> to read command line options?

by 2teez (Vicar)
on Aug 16, 2013 at 08:21 UTC ( [id://1049704]=note: print w/replies, xml ) Need Help??


in reply to <> to read command line options?

slackcub wrote:..They use that to read they list of arguments **from the command line...

That is not SO! Sir!! :). I suppose you presumed that.
Reading from the explanation of solution given by the author(s) of the book on that exercise:

That second line of code is too confusing *(that is referring to push @numbers, split while <>;), isn’t it? Well, we did that on purpose. Although we recommend that you write clear code, some people like writing code that’s as hard to understand as possible, so we want you to be prepared for the worst. Someday, you’ll need to maintain confusing code like this.
Since that line uses the while modifier, it’s the same as if it were written in a loop like this:
while (<>) { push @numbers, split; }
That’s better, but maybe it’s still a little unclear. (Nevertheless, we don’t have a quibble about writing it this way. This one is on the correct side of the “too hard to understand at a glance” line.) The while loop **is reading the input one line at a time (from the user’s choice of input sources, as shown by the diamond operator), and split is, by default, splitting that on whitespace to make a list of words—or in this case, a list of numbers. The input is just a stream of numbers separated by whitespace, after all. Either way you write it, then, that while loop will put all of the numbers from the input into @numbers.


NOTE:
* included by me for clarity.
** Bold text were used for emphasis.

If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author unknown to me

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (3)
As of 2024-04-19 20:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found