我发现有必要扩展CPAN模块。 (Unicode :: CharName升至Unicode 4.1;我需要Unicode 5.0和5.1中的一些字符)。
我已经进行了必要的更改,并拥有自己的CharName.pm模块。
我现在想将其与各种Perls一起使用。我目前使用:
我应该在哪里放置Unicode :: CharName版本,以使其取代CPAN安装的版本?
我不想更改当前所有的脚本
use Unicode::CharName;
答案 0 :(得分:3)
使用cpanm,您可以下载该模块,对其进行修补并按常规进行安装:
$ cpanm --look Unicode::CharName
# new shell opens
$ patch lib/Unicode/CharName.pm custom.patch # or whatever process
$ perl Makefile.PL
$ make install
$ exit
您还可以通过将-l local/
选项添加到cpanm
命令中,将其安装到local::lib以避免全局覆盖。然后,您可以将此本地:: lib的绝对路径添加到您的PERL5LIB中,或者通过-I
或use lib
来添加。如果您为/path/to/local
选项指定了-l
,它将为/path/to/local/lib/perl5
。
手动复制文件而不是通过正常安装过程可能会导致问题。许多发行版取决于安装过程才能正确构建模块。另外,您将需要为要使用它的每个Perl分别安装该模块。安装的Perl模块通常在Perl版本或体系结构之间不交叉兼容。 (严格简单的纯Perl模块可能是这些规则的一个例外,但是我觉得很容易被这种方式滥用的唯一模块是App :: cpanminus,因为它是专门为执行此操作而设计的。)