如何找到标准的site_perl(非特定于arch)位置?只是循环遍历@INC并找到以“site_perl”结尾的路径,或者是否有标准的方法来执行此操作是否安全?
试图找到这个的原因是,我有一个非常大的项目,由数百个单独的模块构建,所有模块都有自己的Makefile.PL文件(几乎每个.pm文件都被构建为自己的CPAN样式模块).除此之外,每个模块可能在各个位置都有工件(模板,.cgi等),所有这些都需要部署到不同的位置,没有什么是标准的.这是尝试控制它的第一步,基本上只有一个可以查找和部署所有内容的Makefile,下一步将是在版本控制中以合理的布局获取它.
我花时间尝试使用标准安装工具,但没有运气.
解决方法
C:\Temp> perl -MConfig -e "print qq{$_ => $Config{$_}\n} for grep { /site/ } keys %Config" d_sitearch => define installsitearch => C:\opt\perl\site\lib installsitebin => C:\opt\perl\site\bin installsitehtml1dir => installsitehtml3dir => installsitelib => C:\opt\perl\site\lib installsiteman1dir => installsiteman3dir => installsitescript => C:\opt\perl\site\bin sitearch => C:\opt\perl\site\lib sitearchexp => C:\opt\perl\site\lib sitebin => C:\opt\perl\site\bin sitebinexp => C:\opt\perl\site\bin sitehtml1dir => sitehtml1direxp => sitehtml3dir => sitehtml3direxp => sitelib => C:\opt\perl\site\lib sitelib_stem => sitelibexp => C:\opt\perl\site\lib siteman1dir => siteman1direxp => siteman3dir => siteman3direxp => siteprefix => C:\opt\perl\site siteprefixexp => C:\opt\perl\site sitescript => sitescriptexp => usesitecustomize => define
或者,正如@ysth在评论中指出的那样,您可以使用:
C:\Temp> perl -V:.*site.*
在Windows和
$perl '-V:.*site.*'
在* nix shell中.