Undefined subroutine &main::subroutine

Jiri Polcar polcar na physics.muni.cz
Neděle Březen 7 15:19:54 MET 2004


On Sun, Mar 07, 2004 at 03:02:06PM +0100, Vladimír Fux wrote:
> 
> > Pokud pouzitjete package XYZ pak se dale vsechny definovane fce a prom.
> > nachazi v jmennem prostoru XYZ. Tedy k nim (z jinych jmen. prostoru)
> > pristupujete XYZ::MOJE_FCE.  Ve vami napsanem prikladu lezi hlavni kod v
> > jmen. prostoru 'main', takze musite volat:
> > my $pricteno = mylib::pricti_pet(2);
> 
> Ano, to jsem metodou pokusu a omylu zjistil. Neprisel jsem ale na to, proc
> to drive fungovalo. Stare verze perlu to tolerovaly? Desi mne to proto, ze
> nevim, kde vsude v hotovych vecech, starych treba rok nebo dva bude jeste
> tentyz problem. Proto jsem chtel docilit stavu, kdy to zae zacne fungovat.
> 

    -------- mylib.pm --------
    package mylib;

    use Exporter;

    @ISA    = qw( Exporter );
    @EXPORT = qw( pricti_pet );



    sub pricti_pet ($)
    {
            my $cislo = shift;
            return $cislo + 5;
    }

    1;
    ---------------------------

Kdyz zmenite mylib.pm na vyse uvedeno, bude funkce pricti_pet()
exportovana a dostupna z jemnneho prostoru MAIN::, takze ji muzete volat
jako

    pricti_pet();

viz man Exporter

--
JP


Další informace o konferenci Perl