Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Re: Re: Shift versus Sanity

by Juerd (Abbot)
on Apr 25, 2002 at 09:58 UTC ( [id://161903]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: Shift versus Sanity
in thread Shift versus Sanity

sub do_stuff { my $this = shift; my $session = shift || die "Missing req'd Session argument"; my $cgi = shift || new CGI (); ... }

As said, I think that's horrible.

sub do_stuff { my ($self, $session, $cgi) = @_; croak 'Session not optional' unless $session; $cgi ||= CGI->new(); ... }
I call my objects $self, not $this. You can see the three arguments in a single line, instead of spread over three.

esthetics aside, here are some hard figures on efficiency (slightly reformatted)

I am starting to think that you didn't read my post, and are only commenting on the piece of code. Efficiency is important, but not more important than readability and maintainability. Whenever efficiency is important, you probably should not be using OO.

- Yes, I reinvent wheels.
- Spam: Visit eurotraQ.

Replies are listed 'Best First'.
Re: Re: Re: Re: Shift versus Sanity
by d_i_r_t_y (Monk) on Apr 25, 2002 at 14:34 UTC

    of course i read your post; the original post was about the efficiency of the various techniques! i generally prefer the shifting technique, perhaps cause my editor nicely syntax-colours the my's. 90% of the time it's purely aesthetics, though sometimes one method will lend itself to a particular technique; such as when the second or third argument is a (long) list or hash. TIMTOWTDI.

    besides, it's going to be a moot point in perl6; everything will be named in the method signature.

    but i agree. readability and maintainability are almost always preferable to 5% faster execution. there's no way i could hold a team of 6 and 100K lines of perl together if i didn't think so :-)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (1)
As of 2024-04-25 04:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found