Определите, передается ли $ARGV[X] строка или файл в perl.

#perl

#perl

Вопрос:

Есть ли способ, кроме проверки на наличие суффиксов? Или я должен придерживаться проверки .txt?

Комментарии:

1. Вы могли бы получить больше голосов (или, по крайней мере, меньше голосов «против»), если бы этот вопрос был сформулирован более четко (и таким образом, который более полезен для поисковых систем). Подсказка: постарайтесь, чтобы он соответствовал ответу от @fin .

2. @Mabeuf: Я вернул ваш вопрос к оригиналу, потому что я думаю, что еще менее понятно, что вы имеете в виду, если вы вообще не упоминаете @ARGV . Это также сделало принятый вами ответ довольно странным

3. Я пытался сделать то, что сказал G. Cito выше. Я думал, что мой вопрос ясен. Я ожидал увидеть строку, такую как my $in= $ARGV[1] or die $usage unless ...... , и подумал, что мой заголовок объясняет вопрос

Ответ №1:

@ARGV это просто список аргументов командной строки, предоставленных скрипту, см. perlvar

Если вы хотите узнать, является ли один из этих аргументов файлом, вы, вероятно, захотите -e , см. Тесты файлов

Если вы ожидаете, что первым аргументом будет имя файла, что-то вроде:

 my $filename = shift @ARGV;
die "script.pl FILENAME expected" unless -e $filename;
  

Комментарии:

1. Спасибо, это то, что мне было нужно