Margin-Auto: Namensräume und HTML::Parser

Hi,

in meinem Skript binde ich zwei Module ein:

use Sonstiges;
use myHTMLParser;

In myHTMLParser wird - wie sollte es anders sein - HTML::Parser verwendet:

sub proceedHtml{
 my $html=shift;
 {
 package MyParser;
 use base 'HTML::Parser';

sub start{
            #....
 }
 sub end {
            #....
 }
 sub text {
            #....
 }
 }
 my $p = MyParser->new();

$p->parse($html);
 return $Main::newhtml;
}

Innerhalb der Subs start, end und text werden jetzt einige Sachen mit dem HTML gemacht.
So weit so gut. Ich möchte jetzt aber in der Sub Start eine Sub aus dem anderen Modul (Sonstiges.pm) aufrufen. Bisherige Versuche mit &Main::sonstsub(), &Main::Sonstiges::sonstsub() blieben erfolglos, es kommt jedes Mal die Fehlermeldung "Undefined subroutine called."

Wie müsste der korrekte Aufruf der Sub in dem anderen Modul lauten?

TIA

Margin-Auto

  1. So weit so gut. Ich möchte jetzt aber in der Sub Start eine Sub aus dem anderen Modul (Sonstiges.pm) aufrufen. Bisherige Versuche mit &Main::sonstsub(), &Main::Sonstiges::sonstsub() blieben erfolglos, es kommt jedes Mal die Fehlermeldung "Undefined subroutine called."

    es muss main::sub() heißen.

    Struppi.

    1. Hi,

      es muss main::sub() heißen.

      Danke, das wars.

      Ja, ich weiss: das Universum ist case-sensitiv....

      Margin-Auto