相关疑难解决方法(0)

在Perl中,如何确定我的文件是用作模块还是作为脚本运行?

假设我有一个Perl文件,其中只有在我被称为脚本时才需要运行的部分.我记得有时读过在main()方法中包含这些部分并做一个

main() unless(<some condition which tests if I'm being used as a module>);
Run Code Online (Sandbox Code Playgroud)

但我忘了条件是什么.搜索Google并没有发现任何有益的结果.有人能指出正确的地方寻找这个吗?

perl module modulino

10
推荐指数
2
解决办法
951
查看次数

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

我基于以下模板/骨架上的Perl脚本占主导地位:

#!/usr/bin/perl -w

use strict;
use utf8;

$| = 1;
binmode(STDOUT, ":utf8");

# my code goes here.
Run Code Online (Sandbox Code Playgroud)

这个模板实现的目标:

  1. 启用警告(-w)
  2. 启用严格模式(use strict)
  3. 走纯UTF-8(use utf8+ binmode(STDOUT, ":utf8"))
  4. 禁用缓冲($| = 1)

我的问题是:

如何改进我的模板以更好地反映Perl最佳实践?

perl

10
推荐指数
3
解决办法
934
查看次数

当设置Perl代码作为脚本或模块运行时,__PACKAGE__的原因是什么?

在这个早期的Stackoverflow问题中,特别是brian d foy的"脚本如何成为一个模块"我已经阅读了如何设置代码,以便它可以作为脚本或模块运行,使用这种技术:

package SomeModule;

__PACKAGE__->run(@ARGV) unless caller();

sub run {
    # Do stuff here if you are running the file as
    # a script rather than a module.
}
Run Code Online (Sandbox Code Playgroud)

__PACKAGE__这个设置的目的是什么?为什么不这样做呢?

run(@ARGV) unless caller();
Run Code Online (Sandbox Code Playgroud)

perl module

4
推荐指数
1
解决办法
1589
查看次数

标签 统计

perl ×3

module ×2

modulino ×1