I am not sure if this is the SUPER package we are looking for.
Being said this, please remember that I am quite new to Perl.
http://search.cpan.org/~chromatic/SUPER-1.16/lib/SUPER.pm

Luke Lu さんは��きました:
> Where can I get the SUPER package? I want to debug it 
> If you got it,pls give me a copy
>
> -----邮件原件-----
> 发件人: Nguyen Vu Hung [mailto:[EMAIL PROTECTED] 
> 发送时间: 2007年8月16日 10:15
> 收件人: Luke Lu
> 抄送: modperl@perl.apache.org
> 主题: Re: 答复: 答复: 答复: 答复: Class inheritance, and SUPER under mod_perl2
>
> Lu,
>
> I think IO::Socket:SSL has nothing to do here because this class
> inherits Net::Cmd and IO::Socket::INET.
>
> The next part of the code is to connect to a POP server and get emails,
> therefore it has no relationship wih IO::Socket:SSL.
>
> The point maybe the word SUPER. AFAIK, "SUPER" means "super class" in
> Perl, right? Please fix me if I am wrong.
> So, in this case,
>
> $type->SUPER::new
>
> refers to the parents clasess ( i.e, Net::Cmd, IO::Socket::INET ) of its
> own ( XXX::YYY3 class ).
>
> Do I need to post the code where XXX:YYY3 is being called?
>
> Luke Lu さんは��きました:
>   
>> We can infer :
>>    $obj = $type->SUPER::new(PeerAddr => ($h),
>>   
>>     
>>> PeerPort => 110,
>>> Proto => 'tcp',
>>> LocalPort => 110,
>>> Timeout => 120
>>> );# and last;
>>>     
>>>       
>> This line may have some problems ,  you can use IO::Socket::SSL this package 
>> .
>> Or you can give me the SUPER, I try to debug it.
>> -----邮件原件-----
>> 发件人: Nguyen Vu Hung [mailto:[EMAIL PROTECTED] 
>> 发送时间: 2007年8月16日 9:46
>> 收件人: Luke Lu
>> 抄送: modperl@perl.apache.org
>> 主题: Re: 答复: 答复: 答复: Class inheritance, and SUPER under mod_perl2
>>
>> Yes, it was undefined even inside foreach.
>> You can see it above the debug lines on my code.
>>
>> Luke Lu さんは��きました:
>>   
>>     
>>> Hi,
>>> the $obj is undefined  everytime?
>>>
>>> -----邮件原件-----
>>> 发件人: Nguyen Vu Hung [mailto:[EMAIL PROTECTED] 
>>> 发送时间: 2007年8月16日 9:34
>>> 收件人: Luke Lu
>>> 抄送: modperl@perl.apache.org
>>> 主题: Re: 答复: 答复: Class inheritance, and SUPER under mod_perl2
>>>
>>> Actually I did exactly what you told me yesterday and $obj was still
>>> undefined.
>>>
>>> Here is the code ( check if $obj is undefined inside foreach )
>>>
>>> ------------
>>> 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. so weird.
>>> unless ( defined $obj ) {
>>> $sl->log_serror(__FILE__, __LINE__, Apache2::Const::LOG_ERR,
>>> APR::Const::SUCCESS, "XXX:: undef obj! ERROR. ");
>>> }
>>> last;
>>> }
>>> --------------------
>>> Luke Lu さんは��きました:
>>>   
>>>     
>>>       
>>>> Ok, so sorry,
>>>>  You only put the print "..." inside the foreach.
>>>>  Please try it.
>>>>
>>>> -----邮件原件-----
>>>> 发件人: Nguyen Vu Hung [mailto:[EMAIL PROTECTED] 
>>>> 发送时间: 2007年8月16日 9:24
>>>> 收件人: Luke Lu
>>>> 抄送: modperl@perl.apache.org
>>>> 主题: Re: 答复: Class inheritance, and SUPER under mod_perl2
>>>>
>>>> This code didn't run.
>>>>
>>>> I don't think we can put an "if" clause inside
>>>>
>>>> $type->SUPER::new(...)
>>>>
>>>> The error I got when running this code is:
>>>>
>>>>  syntax error at /XXX/YYY3.pm line 74, near "if"\nsyntax error at 
>>>> /XXX/YYY3.pm line 77, near "} else"\nsyntax error at /XXX/YYY3.pm line 82, 
>>>> near "
>>>>
>>>> Luke Lu さんは��きました:
>>>>   
>>>>     
>>>>       
>>>>         
>>>>> Hi,
>>>>>   In this part:
>>>>>     foreach $h (@{$hosts})
>>>>>    {
>>>>>       $obj = $type->SUPER::new(PeerAddr => ($h),
>>>>>       PeerPort => 110,
>>>>>       Proto => 'tcp',
>>>>>       LocalPort => 110,
>>>>>       Timeout => 120
>>>>>    ) and last;
>>>>>
>>>>>   }
>>>>> You can debug it like this 
>>>>> foreach $h (@{$hosts})
>>>>> {
>>>>> $obj = $type->SUPER::new(PeerAddr => ($h),
>>>>> PeerPort => 110,
>>>>> Proto => 'tcp',
>>>>> LocalPort => 110,
>>>>> Timeout => 120
>>>>>  If (defined ($obj))  {
>>>>>    Print "ok";
>>>>>  }
>>>>> Else {
>>>>>   Print "bad";
>>>>> }
>>>>> ) and last;
>>>>> }
>>>>>
>>>>> According to this ,you can check it whether every time it will be 'ok' or 
>>>>> not.
>>>>> If the last time is output 'bad', then you can find the real reason
>>>>>
>>>>> If still have any question,please contact with me/
>>>>>
>>>>> luke
>>>>>
>>>>> -----邮件原件-----
>>>>> 发件人: Nguyen Vu Hung [mailto:[EMAIL PROTECTED] 
>>>>> 发送时间: 2007年8月16日 8:58
>>>>> 收件人: modperl@perl.apache.org
>>>>> 主题: Class inheritance, and SUPER under mod_perl2
>>>>>
>>>>> 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;
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>   
>>>>>     
>>>>>       
>>>>>         
>>>>>           
>>>>   
>>>>     
>>>>       
>>>>         
>>>   
>>>     
>>>       
>>
>>   
>>     
>
>
>
>   

Reply via email to