neexistujici knihovny a jmena funkci

Michal Pise mpis7450 na ss1000.ms.mff.cuni.cz
Středa Srpen 25 14:47:32 MEST 1999


> Potreboval bych zajistit, aby program mohl nejak zjistit, ze
> knihovna neexistuje a na zaklade toho provest nejakou akci.

Pokud myslite modul, tak by to slo takhle (ale mozna existuje i
systemovejsi reseni)

pegasus:/usr0/gall # cat a.pl
eval "use NeexistujiciModul";
if ( $@) { print "Modul neexistuje\n" }

pegasus:/usr0/gall # perl -w a.pl
Modul neexistuje

Jestli chcete odchytit volani neexistujici funkce, pak se podivejte
na fci AUTOLOAD

> Dalsi vec je jak zavolat funkci jejiz jmeno
> mam v promene jako retezec?

Treba takto (musite mit povoleny mekke odkazy):

pegasus:/usr0/gall # cat a.pl
sub a { print "Ano\n" }
$r = 'a';
&$r
pegasus:/usr0/gall # perl -w a.pl
Ano

Eval to resi i pri use strict 'refs'

pegasus:/usr0/gall # cat a.pl
use strict 'refs';
sub a { print "Ano\n" }
$r = 'a';
eval "$r";
pegasus:/usr0/gall # perl -w a.pl
Ano

> Zacit se dnes ucit Perl je jako koupit si listek na Titanic

Docela divne motto, kdyz se ptate v Perlovske konferenci

Michal Pise



Další informace o konferenci Perl