如何在Perl单行中打印正在处理的文件的名称?

cha*_*par 2 perl command-line

我通常使用perl one line而不是grep来搜索文件.

例如,以下打印包含的所有位置 #include <stdio.h>

perl -ne "print if(/#include\s*[\"<]stdio.h/)" */*.[ch] 
Run Code Online (Sandbox Code Playgroud)

但我找不到打印获取这些行的文件名的方法.我试着打印$ARGV[0]但没有用.

那么,如何打印包含这些行的文件名?

hob*_*bbs 10

包含*ARGV要打开的文件名的变量$ARGV不是$ARGV[0](这是第一个元素@ARGV).

print "$ARGV: $_" if /include\s*[\"<]stdio.h/;
Run Code Online (Sandbox Code Playgroud)