代码之家  ›  专栏  ›  技术社区  ›  Daniel C. Sobral

如何在Perl中获取正在读取的文件名?

  •  2
  • Daniel C. Sobral  · 技术社区  · 15 年前

    在以下Perl模式中:

    while(<>) {
      # do stuff
    }
    

    有没有办法获取当前打开的文件名?

    为了清楚起见,我希望收到许多参数,这样循环将处理多个文件。我想要文件名 目前 正在处理中。

    3 回复  |  直到 15 年前
        1
  •  17
  •   Todd Hunter    15 年前

    $ARGV
    

    perldoc perlvar

    • $ARGV

    但是,如果您从STDIN输入,您将只获得“-”

    在中还对null文件句柄进行了更多讨论 perldoc perlop

        2
  •  2
  •   Pod    15 年前

        3
  •  2
  •   Michiel Buddingh    15 年前

    如果您使用的是linux,那么可以查看 /proc/self/fd/0 .

    编辑: 为了清楚起见,对答案进行了修改:上面的内容很有用,但是 只有 在从中读取perl脚本的输入的情况下 stdin . 这可以通过阅读来确定 $ARGV ,如上述答复所述。