Я не могу получить приведенный ниже скрипт для записи в файл data.txt, используя FILEHANDLE. Оба файла находятся в одной папке, так что это не проблема. С тех пор как я начал работать с Perl, я заметил, что для запуска скриптов мне нужно использовать полный путь: c: \ Programs \ scriptname.pl, а также тот же метод для ввода файлов. Я думал, что это может быть проблемой, и попробовал этот синтаксис ниже, но это тоже не сработало ...
open(WRITE, ">c:\programs\data.txt") || die "Unable to open file data.txt: $!";
Вот мой сценарий. Я проверял синтаксис, пока он не сводит меня с ума и не видит проблемы. Любая помощь будет принята с благодарностью! Я также озадачен, почему функция die не сработала.
#!c:\strawberry\perl\bin\perl.exe
#strict
#diagnostics
#warnings
#obtain info in variables to be written to data.txt
print("What is your name?");
$name = <STDIN>;
print("How old are you?");
$age = <STDIN>;
print("What is your email address?");
$email = <STDIN>;
#data.txt is in the same file as this file.
open(WRITE, ">data.txt") || die "Unable to open file data.txt: $!";
#print information to data.txt
print WRITE "Hi, $name, you are \s $age and your email is \s $email";
#close the connection
close(WRITE);
Как я решил эту проблему, решил .
У меня установлен Strawberry Perl perl.exe, установленный на диске c :, установленный через и использующий установщик с папкой также на c с моими сценариями, что означало, что я не могу выполнить красный / запись в файл (направленный или использующий функции, т. е. открытая), и мне всегда приходилось использовать полные пути для запуска скрипта. Я решил эту проблему после того, как предложил оставить интерпретатор установленным там, где он был, и переместить мой файл сценариев на рабочий стол (оставьте команду ОС в первой строке сценария, где он находится, поскольку интерпретатор все еще находится на том же месте, где он был изначально ). Теперь я могу запускать сценарии одним щелчком, читать / писать и добавлять в файл с приглашением CMD и с легкостью использовать функции Perl.