Supposons que le module AAA::BBB::CCC
situé dans ~/modules/AAA/BBB/CCC.pm
, et "~/modules
" soit dans @INC
, alors pourquoi le code suivant ne fonctionne pas et conduit à une erreur de compilation?Pourquoi ne puis-je pas utiliser une expression pour créer un nom de classe dans Perl?
$class = "AAA::BBB" ;
$type = "CCC";
require $class . '::' . $type ;
J'essaie d'utiliser à la place exigent AAA::BBB::CCC
, cela fonctionne. Si j'ai besoin dynamiquement d'un module en combinant des chaînes ensemble plutôt qu'en codant directement le nom du module, comment dois-je faire?
grâce
Avez-vous jamais pensé à regarder « perldoc -f besoin »? c'est-à-dire http://perldoc.perl.org/functions/require.html – Ether