我有一个Perl脚本(独立程序),它包含一些我想在其他脚本中重用的子程序.由于执行环境的限制,我无法将函数移动到公共.pm
文件.
是否有可能区分脚本是否运行作为一个独立的程序,或者是require
编/ do
由另一个脚本编?
我唯一能找到的就是caller
在顶层使用:当require
ed caller
显示谁加载了模块时,独立程序没有任何调用者.有没有更好的解决方案?
是的,你的caller
方法是正确的 - 这是一种由brian d foy命名为"modulinos"的技术.我猜是布莱恩发明了它,除非有人启发我.
modulino的主要工作部分看起来像这样(来自下面的SO答案):
__PACKAGE__->run( @ARGV ) unless caller;
sub run {
my( $class, @args ) = @_;
}
1;
Run Code Online (Sandbox Code Playgroud)
以下是一些参考:
brian d foy的"掌握Perl"一书中的"模块作为程序"一章
Dobbs博士的"Scripts as Modules"一文
归档时间: |
|
查看次数: |
326 次 |
最近记录: |