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

Re: Re: GetOpt::Long usage style

by demerphq (Chancellor)
on Mar 08, 2003 at 12:32 UTC ( #241374=note: print w/ replies, xml ) Need Help??


in reply to Re: GetOpt::Long usage style
in thread GetOpt::Long usage style

\(my $verbose='');

my returns what has been declared. (Although the behaviour of it as a function is a little interesting, I dont think it can be prototyped, and I can't find complete documentation for it off hand.) The parenthesis required because the precedence of the assignment operator causes

GetOptions(x=>my $x=1,y=>my $y);

to be parsed something like

GetOptions('x',(my $x=1,y=>my $y));

which is a syntax error. They aren't required when the variable isn't initialized as part of the my. Also I personally think that they add visual calrity when the reference to the variable is taken. Since the my returns the variable declared (as an lvalue) we can take a reference to it with \. The reference operator \ can technically go inside the parens or outside in this case as

\($x,$y,$z)

is shorthand for

(\$x,\$y,\$z)

Hope that clarifys things. ;-) Er, and yes. You analysed it correctly. :-)

A couple of related tricks are:

my $txt="Foo bar"; (my $clean=$txt)=~s/oo/u/g; open my $fh,"File" or die "File $!"; if (my ($x,$y,$z)=/A(..)(..)(..)Z/) { }

---
demerphq



Comment on Re: Re: GetOpt::Long usage style
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (6)
As of 2014-04-19 16:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (483 votes), past polls