Perl脚本可用作程序和模块

我有一个Perl脚本(独立程序),其中包含我想在其他脚本中重用的一些子。 由于执行环境的限制,我不能将这些函数移动到一个普通的.pm文件中。

是否可以区分脚本是作为独立程序运行还是由另一个脚本编辑/ do ?

我唯一能find的就是在顶层使用caller :独立程序没有任何调用者,而当require caller显示谁加载模块。 有没有更好的解决scheme?

从文本文件删除奇数行或偶数行

认的Jenkins用户密码

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”一章

dobbs博士的“作为模块的脚本”文章

perlmonks上的“脚本如何成为模块”一文

我应该在我的Perl程序的入门模板中放入什么?

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...