В Perl обычно достаточно легко получить ссылку на аргументы командной строки. Я просто использую $ARGV[0]
, например, чтобы получить имя файла, который был передан в качестве первого аргумента.
Однако при использовании однострочного Perl он больше не работает. Например, здесь я хочу напечатать имя файла, который я выполняю, если в нем находится определенная строка:
perl -ne 'print $ARGV[0] if(/needle/)' haystack.txt
Это не работает, потому что ARGV
не заполняется, если используется переключатель -n
или -p
. Есть ли способ обойти это?