gpt4 book ai didi

perl - 判断你的 perl 是否在 -e 上运行的最好方法是什么?

转载 作者:行者123 更新时间:2023-12-03 22:49:13 26 4
gpt4 key购买 nike

问题不在于如何在单行中分辨。如果您正在单行编写代码,那么您知道自己是。但是,-MMy::Module::Name 包含的模块如何?知道这一切都是从单线开始的。

这是我的。虽然它是不可移植的,并且依赖于 UNIX 标准命令(尽管它可以或多或少地移植。)

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

如果你有一个更时髦的正则表达式,请随时改进我的。

有几个人问我为什么要这样做。 brian 正确地猜到了我想根据它是脚本来更改导出行为,我们可以假设它已经进行了一些设计,或者它是否是用户试图在单个命令行中尽可能多地执行操作的单行器。

这听起来很糟糕,因为导出商应该尊重其他软件包的信条——有时被称为“ @EXPORT 是邪恶的!”但在我看来,当应用于 oneliners 时,这是一种愚蠢的一致性。毕竟 perl 本身会不遗余力地违反其语言的结构,并且如果您在命令行上要求它们,则可以为您提供简单的循环,我只是想将这个想法扩展到我的运营/业务领域。如果有帮助,我什至想应用源过滤器(喘气!)。

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

最佳答案

$0设置为 "-e"如果您从 -e 运行.

关于perl - 判断你的 perl 是否在 -e 上运行的最好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/167238/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com