Просто проверьте, определено ли значение $ ARGV [0]
#!/usr/bin/perl
use strict;
use warnings;
if(!defined $ARGV[0]){
print "No FilePath Specified!\n";
}
Будет выведено «FilePath не указан! \ N», если не было пропущено командной строки.
Проблема, с которой вы сталкиваетесь, заключается в том, что вы устанавливаете $ filePath в неопределенное значение. Warnings жалуется, потому что вы попытались сравнить неопределенное значение с "". Warnings считает, что стоит рассказать вам об этом.
Я использовал свой пример, чтобы показать чистый способ проверки, если что-то определено, но технически для этого вы также можете просто сделать:
if(!@ARGV){
print "No FilePath Specified!\n";
}