Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re^2: Is undef list assignment a no-op?

by ELISHEVA (Prior)
on Mar 25, 2011 at 12:01 UTC ( #895458=note: print w/replies, xml ) Need Help??

in reply to Re: Is undef list assignment a no-op?
in thread Is undef list assignment a no-op?

It is more normal just to shift it out and normal ways are more maintainable.

I can respect that it isn't a style you feel comfortable with or are familiar with, but I wouldn't go so far as to call it unusual or abnormal.

For one, using undef as a placeholder in a list on the left hand of an assignment is a perfectly valid use of Perl syntax. No less than Larry Wall documents its usage in the book Programming Perl (p. 819). Lest one relegate this to some ancient deprecated version of Perl, this usage is also documented even today in undef.

For another, the use of undef in a list preserves the order of parameters without all the visual noise created by shift statements. One might argue that is is more self-documenting and hence more maintainable.

Finally, and this is probably most important, shifting parameters out of @_ can make debugging more difficult. If you die and need a stack trace, the shifted out parameters will sometimes display as "undef" being passed to your function call, even though the actual value passed into the function call was absolutely not undef.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://895458]
[choroba]: The documentation just says the second argument should be "characters"
[Eily]: It can also be used to force a copy, and remove magic from a variable

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (9)
As of 2018-02-22 17:12 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (295 votes). Check out past polls.