perl - 如何在 -n 或 -p 模式下使用 Perl 处理选项?

标签 perl command-line-interface

运行时 perl -nperl -p , 每个命令行参数都被当作一个文件来逐行打开和处理。如果您想将命令行开关传递给该脚本,我该怎么做?

最佳答案

在不使用 STDIN 或外部存储的情况下,可以通过三种主要方式将信息传递给 Perl。

  • 参数
    使用时 -n-p , 提取 BEGIN 中的参数堵塞。
      perl -ne'BEGIN { ($x,$y)=splice(@ARGV,0,2) } f($x,$y)' -- "$x" "$y" ...
    
  • 命令行选项
    在完整的程序中,您将使用 Getopt::Long ,但是 perl -s 会在这里做得很好。
      perl -sne'f($x,$y)' -- -x="$x" -y="$y" -- ...
    
  • 环境变量
      X="$x" Y="$y" perl -ne'f($ENV{X},$ENV{Y})' -- ...
    
  • 关于perl - 如何在 -n 或 -p 模式下使用 Perl 处理选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53524699/

    相关文章:

    python - 使用 Python 的 click 库的任意命令行关键字

    iphone - 如何从 Mac 获取已连接 iPhone 的充电状态?

    perl - 如何从shell脚本执行perl文件

    linux - 生成 Linux X11 事件?

    python - 打印 snmpwalk 结果的数量

    java - Jenkins CLI 不会安装;它只是挂着

    macos - 在 Mac 上通过命令行创建 ODBC 连接

    perl - 如何查找和计算 Perl 哈希中的重复值

    perl - 为什么 Perl 的 IO::Pipe 异常的行为与 eval block 中的 croak 或 die 不同?

    php - 如何区分http和cli请求?