什么是最好的方式来告诉你的perl的运行在?

前端之家收集整理的这篇文章主要介绍了什么是最好的方式来告诉你的perl的运行在?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问题不是如何在一个oneliner告诉.如果你在一行中编写代码,你知道你是.但是,-MMy :: Module :: Name中包含的模块是如何知道它都是从oneliner开始的.

这是我的.它不是便携式的,而是依赖于UNIX标准命令(尽管它可以随便携带或多或少).

my $process_info = `ps $$| tail -1`;
my $is_oneliner  
    = $process_info =~ m/perl.*?\s+-[^\P{IsLower}e]*e[^\P{IsLower}e]*\s+/m
    ;

如果你有一个snazzier正则表达式,可以随意改进我的.

有几个人问我为什么要这样做. brian正确地猜测,我想根据是否是脚本来改变导出行为,我们可以假设它有一些设计,或者是一个用户在单个命令行中尝试尽可能多的oneliner.

这听起来很糟糕,因为出口商应该尊重其他软件包 – 有时被称为“@EXPORT is EVIL!”这样的信条.但是在我看来,在应用于线人的时候,这是一种愚蠢的一致性.毕竟perl本身就是出于违反其语言结构的方式,如果您在命令行中要求它们,就可以轻松地循环,我只想将这个想法扩展到我的操作/业务领域.我甚至想要应用源过滤器(喘气!),如果它有帮助.

但是这个问题也表明,我可能想成为一个很好的Perl公民,因为我只是在某些情况下打破社区准则.通过更改批处理调度程序中的命令行,而不是编写一个全新的模块,能够创建主要的业务级别操作是非常棒的.测试周期压缩很大.

解决方法

如果从-e运行,$0设置为“-e”.

猜你在找的Perl相关文章