Não é possível carregar o `Cwd` (e outros módulos não essenciais) em tempo de execução

Imagine que eu quero carregar um módulo em tempo de execução. Eu esperava que isso funcionasse

use warnings;
use strict;

eval {
    require Cwd; 
    Cwd->import;
};
if ($@) { die "Can't load Cwd: $@" }

say "Dir: ", getcwd;

mas não, porBareword "getcwd" not allowed ....

oCwd exportaçõesgetcwd por padrão. Tentei dar o (s) nome (s) da função paraimport e eu tentei com suas outras funções. Funciona com o nome completo,say Cwd::getcwd, então acho que não está importando.

Isso funciona como tentado em alguns outros módulos principais que eu tentei, por exemplo

use warnings;
use strict;

eval { 
    require List::Util; 
    List::Util->import('max');
};
if ($@) { die "Can't load List::Util: $@" }

my $max = max (1, 14, 3, 26, 2); 
print "Max is $max\n";

NOTA adicionada Aparentemente, chamadas de função entre parênteses dão uma pista para o compilador. No entanto, na minha opinião, a questão permanece, por favor, vejaEDITAR no fim. Além disso, uma função comofirst BLOCK LIST do módulo acima não funciona.

no entantonão trabalhei em alguns módulos não essenciais (bem estabelecidos) que tentei. Pior e mais confuso, ele não funciona mesmo com os nomes totalmente qualificados.

Eu posso imaginar que o símbolo (função) usado não é conhecido em tempo de compilação serequire é usado em tempo de execução, mas funciona para (outros) módulos principais. Eu pensei que essa era uma maneira padrão de carregar em tempo de execução.

Se eu precisar usar nomes completos ao carregar dinamicamente, tudo bem, mas o que há com a inconsistência? E comoFaz Carrego (e uso) módulos não essenciais em tempo de execução?

Eu também tentei comModule::Load::Conditional e não funcionou.

O que estou perdendo e como carregar módulos em tempo de execução? (Tentei com5.16 e5.10.1.)

EDITAR

Como observado porMatt Jacob, uma chamada com parênteses funcionagetcwd(). No entanto, dadoperlsub

NAME LIST; # Parênteses opcionais se pré-declarados / importados.

isso implica que a importação não funcionou e a questão do porquê permanece.

Além disso, ter que usar sintaxe variada com base em como o módulo é carregado não é bom. Além disso, não consigo que módulos não essenciais funcionem dessa maneira, especialmente aqueles com sintaxe comoLista :: MoreUtils tem.

questionAnswers(1)

yourAnswerToTheQuestion