Обновление: я только что понял, что у вас нет chomp
вашего STDIN, поэтому к концу имени вашего файла будет добавлена новая строка.
chomp $filename;
Должен решить эту конкретную ошибку с вашим файломname.
Рекомендуемый способ использования open
- использование трех аргументов и лексического дескриптора файла.MYFILE
является глобальным, со всеми присущими ему недостатками и преимуществами.
use autodie; # will check important errors for you, such as open
open my $fh, '>', $namefile;
# ^- lexical ^- explicit mode ^- filename separated from mode
print $fh "This is a textfile\n"; # put something in the file