是否有一个Perl等同于Python的`if __name__ =='__ main __'`?

cdl*_*ary 30 python perl executable

有没有办法确定当前文件是否是在Perl源中执行的文件?在Python中,我们使用以下构造执行此操作:

if __name__ == '__main__':
    # This file is being executed.
    raise NotImplementedError
Run Code Online (Sandbox Code Playgroud)

我可以使用FindBin和一起破解一些东西__FILE__,但是我希望有一种规范的方法可以做到这一点.谢谢!

cjm*_*cjm 47

unless (caller) {
  print "This is the script being executed\n";
}
Run Code Online (Sandbox Code Playgroud)

来电者.它undef在主脚本中返回.请注意,这在子例程中不起作用,仅在顶级代码中有效.


Cha*_*ens 10

请参阅brian d foy的文章"改进Perl编程的五种方法 "中的"应用程序的子类(第18章)"部分.