As part of your new method, you create a new HTTP::Request object. But in this new scenario, you already have an HTTP::Request object. So why not create a variation of your new method that works with an existing object.
sub new_from_http_request { my ($class) = shift ; my $self = $shift ; $self->{myA} = undef ; return bless $self, $class ; }
You can then do something like:
my $httpr = AnotherModule::f() ; my $ownHttpr = My::HTTPRequest->new_from_http_request($httpr);
Alternatively, you could use the same new method and just make it a bit cleverer:
sub new{ my ($class) = shift ; my $self; if (@_) { my $self = shift ; } else { my $self = $class->SUPER::new(@_) ; } $self->{'myA'} = undef ; return bless $self, $class ; }
In both cases, the code can probably be improved by using something like UNIVERSAL::isa to ensure that the parameter that you have been passed is actually an HTTP::Request object (or a subclass).
"The first rule of Perl club is you do not talk about
Perl club."
-- Chip Salzenberg
In reply to Re: How to turn an object in my own subclass
by davorg
in thread How to turn an object in my own subclass
by jeteve
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |