http://qs321.pair.com?node_id=161903


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 :-)