如果使用 -e eval 开关,则强制 Perl 停止对命令行参数的特殊处理

Force Perl to stop special processing of command line arguments if -e eval switch is used

perl -e 'print(123, @ARGV);' a b
# 123ab

perl -e 'print(123, @ARGV);' --help
# prints Perl's help instead

这是一个演示问题的玩具示例。在我的实际用例中,我使用 -e 从使用 perl_parse(...) 函数的嵌入式解释器执行大型脚本,该脚本有自己的 --help 开关处理,所以我会喜欢在 -e.

之后阻止命令行参数的任何特殊处理

可能吗?

使用双连字符停止参数处理:

$ perl -e'print "[@ARGV]\n"' -- --help
[--help]
$