我有一个Perl脚本(独立程序),其中包含我想在其他脚本中重用的一些子。 由于执行环境的限制,我不能将这些函数移动到一个普通的.pm文件中。
是否可以区分脚本是作为独立程序运行还是由另一个脚本编辑/ do ?
我唯一能find的就是在顶层使用caller :独立程序没有任何调用者,而当require caller显示谁加载模块。 有没有更好的解决scheme?
pthread_join如何填充thread_result的variables
使用logrotate的垃圾收集器日志(loggc)文件旋转无法正常工作
触摸命令。 没有权限
是否有必要编写一个“便携式”if(c ==' n')来处理跨平台文件?
由于参数空间不足,Bash脚本无法使用未知的选项
分析jHiccup延迟。 57us打嗝的来源
如何控制具有多个IP的机器上的ZeroMQ数据包的源IP地址?
在gcc中有作为内置macros的非保留标识符的原因是什么?
是的,你的caller方式是正确的 – 这是一个由布莱恩福伊命名为“modulinos”的技术。 我猜布莱恩发明了它,除非有人启发我相反。
modulino的主要工作部分是这样的(从下面链接的SO答案):
__PACKAGE__->run( @ARGV ) unless caller; sub run { my( $class,@args ) = @_; } 1;
这里有几个参考文献:
brian d foy的“Mastering Perl”一书中的“modulees as Programs”一章
perlmonks上的“脚本如何成为模块”一文
我应该在我的Perl程序的入门模板中放入什么?