Проблема в том, что вы также получаете перевод строки как часть имени файла, когда нажимаете клавишу ввода.Вы можете заметить, что если вы печатаете $filename
Вы можете избавиться от него с помощью функции chomp
после получения ввода:
chomp($userInput);
Также,Я не уверен, если вы действительно хотите проверить файл в корневом каталоге или в текущем каталоге.Если это в текущем, возможно, вы пропустили точку перед косой чертой: './' . $userInput;
С этими двумя изменениями ваш код должен выглядеть следующим образом:
#!/usr/bin/perl
use strict;
print "Enter the name of a file: ";
my $userInput = <STDIN>;
chomp($userInput);
my $fileName = './' . $userInput;
if(-e $fileName) {
print "File '$fileName' exist.\n";
die();
} else {
print "File '$fileName' doesnt exist.\n";
die();
}