You could also just bless the variable in your constructor:
package Foo;
use strict;
my $Bar = "Baz";
sub new
{
return bless { BAR => $Bar };
}
package main;
my $Foo = new Foo();
print $Foo->{'BAR'};
| [reply] [d/l] |
OO is great when you need it, but it is considerably slower, so I try to reserve creating method calls for situations where that sort of abstraction is needed. A good module will use both. For example, I like being able to:
use CGI::Pretty qw( param );
if ( defined( param('url') ) { #lets not waste any CPU here, this gets
+ called even when I'm index.cgi
#okay, this isn't the front page, lets see what we've got.
my $object = new CGI();
my $url = $object->('url');
# etc....
of course that could be optimized further by parsing out the url at the same time that we test for it, and setting it to 'index' if it's not there, but you get the idea.
That's part of the beauty of Perl; there is more than one way to do it.
I don't think Larry intended us to just pick our favorite way, but to use each of these ways, when the time is right. | [reply] [d/l] |