in reply to Re: Re: Re: hijacking a module constructor
in thread hijacking a module constructor
This does not seem to work.
hackmare.
The GD:: namespace is not copying over... The Hackmare::GD namespace is getting pointed to the GD::Image namespace when the GD::Image copy takes place. I tried both:
. Here is the debug output if it helps at all...*Hackmare::GD::Image::new = \&GD::Image::new; and *Hackmare::GD::Image:: = GD::Image::;
Here is the debugging info: Notice the infinite loop for the constructor:*Hackmare::GD::Image::new = \&GD::Image::new; *GD::Image:: = *SVG::GD::Image::; package SVG::GD::Image; #constructor sub SVG::GD::Image::new { my $class = shift; my $self = {}; bless $self, $class; $self->{_GD_} = new Hackmare::GD::Image(@_) || print STDERR "Quitting. Unable to construct new GD::Image object using GD: $!\n"; ....stuff.... return $self }
Is anything glaringly obvious here?main::(test/18-loadsvggd.pl:6): print "Creating an SVG::GD Image\n"; DB<0> Creating an SVG::GD Image main::(test/18-loadsvggd.pl:7): my ($width,$height) = (200,200); DB<0> main::(test/18-loadsvggd.pl:8): my $dwg = new GD::Image($width,$height +); DB<0> s SVG::GD::Image::new(SVG/GD.pm:79): my $class = shift; DB<0> s SVG::GD::Image::new(SVG/GD.pm:80): my $self = {}; DB<0> SVG::GD::Image::new(SVG/GD.pm:81): bless $self, $class; DB<0> SVG::GD::Image::new(SVG/GD.pm:82): $self->{_GD_} = new Hackma +re::GD::Image(@_) SVG::GD::Image::new(SVG/GD.pm:83): || print STDERR " +Quitting. Unable to construct new GD::Image SVG::GD::Image::new(SVG/GD.pm:84): object using GD: $!\n" +; DB<0> s GD::Image::new(SVG/GD.pm:79): my $class = shift; DB<0> GD::Image::new(SVG/GD.pm:80): my $self = {}; DB<0> GD::Image::new(SVG/GD.pm:81): bless $self, $class; DB<0> GD::Image::new(SVG/GD.pm:82): $self->{_GD_} = new Hackmare:: +GD::Image(@_) GD::Image::new(SVG/GD.pm:83): || print STDERR "Quitt +ing. Unable to construct new GD::Image GD::Image::new(SVG/GD.pm:84): object using GD: $!\n"; DB<0> GD::Image::new(SVG/GD.pm:79): my $class = shift; DB<0> GD::Image::new(SVG/GD.pm:80): my $self = {}; DB<0> GD::Image::new(SVG/GD.pm:81): bless $self, $class;
hackmare.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Re: Re: Re: hijacking a module constructor
by tilly (Archbishop) on Nov 04, 2003 at 03:15 UTC | |
by hackmare (Pilgrim) on Nov 17, 2003 at 21:02 UTC |
In Section
Seekers of Perl Wisdom