Angenommen, das Modul AAA::BBB::CCC
befindet sich in ~/modules/AAA/BBB/CCC.pm
, und "~/modules
" ist in @INC
, also warum der folgende Code nicht funktioniert und zu Kompilierungsfehler führen?Warum kann ich einen Ausdruck nicht verwenden, um einen Klassennamen in Perls Requirement zu erstellen?
$class = "AAA::BBB" ;
$type = "CCC";
require $class . '::' . $type ;
Ich versuche zu verwenden AAA::BBB::CCC
statt, es funktioniert. Wenn ich ein Modul dynamisch benötigen muss, indem ich Strings zusammenbilde, anstatt den Modulnamen direkt zu codieren, wie soll ich das machen?
dank
Haben Sie jemals daran gedacht, zu betrachten "perldoc -f erforderlich"? d. h. http://perldoc.perl.org/functions/require.html – Ether