大佬教程收集整理的这篇文章主要介绍了perl – 如何根据安装位置“使用lib”相应的目录?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这没什么大不了的,我有一个BEGIN块来检查主程序的位置并适当地设置库目录.但是我也有很多实用程序,命令行程序需要做同样的事情.我不想在任何地方剪切和粘贴此代码.
在需要它的各种程序中共享此代码段的最佳方法是什么?
我不能“使用”它,因为尚未设置libary路径.也许“做”或“要求”将是正确的答案,但这两者都会搜索@INC,这是不合适的.
也许像eval`cat GetLib.pl`;是合适的,但似乎有点笨重和脆弱.
这是我目前使用的BEGIN块:
BEGIN { use FindBin qw ($Bin); require lib; if ($Bin =~ /^\/home\/w\/myapp_live/) { lib->import('/home/w/myapp_live/lib'); print STDERR "live site\n"; } if ($Bin =~ /^\/home\/w\/myapp_beta/) { lib->import('/home/w/myapp_beta/lib'); print STDERR "beta site\n"; } if ($Bin =~ /^\/home\/w\/myapp_test/) { lib->import('/home/w/myapp_test/lib'); print STDERR "tesTing site\n"; } }
谢谢!
默认调用看起来对你有用,只需:
use FindBin::libs;
这将在当前文件的目录的所有父目录中搜索所有./lib目录并使用lib.因此,例如,如果您的脚本位于/home/w/myapp_live/scripts/defurblise_widgets.pl(并使用()es FindBin :: libs),它将查找:
/home/w/myapp_live/scripts/lib /home/w/myapp_live/lib /home/w/lib /home/lib /lib # (presumably!)
它找到的任何内容都会使用lib添加到@INC中.
但是,如果这不是您所需要的,那么它就是一个非常灵活的模块.如果你找不到办法让它做你想做的事,我会感到惊讶.
以上是大佬教程为你收集整理的perl – 如何根据安装位置“使用lib”相应的目录?全部内容,希望文章能够帮你解决perl – 如何根据安装位置“使用lib”相应的目录?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。