проверка имени файла perl linux - PullRequest
       0

проверка имени файла perl linux

0 голосов
/ 22 сентября 2019

Я пытаюсь проверить имя файла в Perl и не могу заставить его работать, я не уверен в том, что я делаю неправильно.Смотрите мой код ниже.

 while ($filename !~ /^[-\w]\.pl$/){
        print "Invalid file name, type another : ";
        my $filename = <STDIN>;
        chomp $filename;
    }

1 Ответ

3 голосов
/ 22 сентября 2019

$filename !~ /^[-\w]\.pl$/

Это выражение допускает только имя файла длиной в один символ (расширение не включено), причем этот символ является символом слова или тире.

Полагаю, вы на самом деле имели в виду:

$filename !~ /^[-\w]+\.pl$/

Примечание: как прокомментировал melpomene , еще одна проблема с вашим регулярным выражением состоит в том, что в нем будет разрешено имя файла с завершающей новой строкойпосле продления.Чтобы избежать этого, вы можете использовать утверждение \z:

$filename !~ /^[-\w]+\.pl\z/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...