Hello all, I am quite new to Perl, mod_perl and mod_perl2 so please excuse me for my questions. It my sounds noobish.
In the code below, the class XXX:YYY3 inherits Net::Cmd, IO::Socket::Inet, create an object $obj with the SUPER keyword. As far as I know, this code works well under Apache 1.3, Perl 5.6, mod_perl 1.3. But in current environment which consists Apache 2.0.52, Perl 5.8, mod_perl 2.0.3, $obj becomes undefined (!!) after it is called with SUPER. Anyone gets any clues? Here is the code: ------------------ package XXX::YYY3; @ISA = qw(Net::Cmd IO::Socket::INET); sub new { my $self = shift; my $type = ref($self) || $self; my $hosts = "localhost"; my $obj; my @localport = (); my $h; foreach $h (@{$hosts}) { $obj = $type->SUPER::new(PeerAddr => ($h), PeerPort => 110, Proto => 'tcp', LocalPort => 110, Timeout => 120 ) and last; } # obj is undefined now. why? unless ( defined $obj ) { $sl->log_serror(__FILE__, __LINE__, Apache2::Const::LOG_ERR, APR::Const::SUCCESS, "XXX:: undef obj! ERROR. "); } # vuhung # ref: http://www.perlmonks.org/?node_id=495975 return undef unless defined $obj; }