Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Difference between my $self = shift and my ($self) = @_

by topher (Scribe)
on Feb 22, 2013 at 06:27 UTC ( #1020075=note: print w/ replies, xml ) Need Help??


in reply to Difference between my $self = shift and my ($self) = @_

As tobyink pointed out, there's no difference in what ends up in $self, but there is a big difference in what's left in @_. If your subroutine isn't expecting arguments, then you can use either method without concern. If you are going to be taking arguments, then you have a choice to make.

Personally, I'm a big fan of using my $self = shift;. For me, it makes the code cleaner and more mentally straightforward. When using shift, the contents of @_ end up being exactly the same as the arguments I passed to the subroutine. If I use assignment from @_, then I have to constantly account for that $self at the first position, complicating things.


Comment on Re: Difference between my $self = shift and my ($self) = @_
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2015-07-03 18: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 (55 votes), past polls