在以下Perl模式中:
while(<>) {
# do stuff
}
有没有办法获取当前打开的文件的名称?
为了清楚起见,我希望收到很多args,这样循环就会处理多个文件。我想要处理目前文件的名称。
答案 0 :(得分:16)
存储在
中$ARGV
请参阅perldoc perlvar:
$ ARGV
从&lt;&gt;。包含当前文件的名称
但是如果从STDIN输入,你将只得到' - '
还有关于perldoc perlop
中空文件句柄的更多讨论答案 1 :(得分:2)
如果您使用的是Linux,则可以查看/proc/self/fd/0
指向的文件。
编辑:为了清晰起见,修改了答案:上述内容非常有用,但在从stdin
读取perl脚本的输入的情况下仅。这可以通过阅读$ARGV
来确定,如上面的回复中所述。
答案 2 :(得分:2)
$ ARGV包含&lt;&gt;。
中使用的文件的名称