Выход из цикла с использованием регулярного выражения в Perl - PullRequest
0 голосов
/ 07 ноября 2011

Я добавляю информацию в текстовый файл и хочу делать это, пока выход не будет введен в виде строки.

Это то, что я использовал, но «выход» не хочет выходить из цикла.

print "please input info to write to the file\n";
my $input = <STDIN>; 
until($input =~ /exit/)
{
    open MYFILE, ">>information.txt" or die "$!";
print MYFILE "$input";

print "enter 'exit' to exitor add more info\n";
my $input = <STDIN>;
}

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

Один из ваших $ input скрывает другой. Уберите мой из второго.

1 голос
/ 07 ноября 2011

Вы делаете несколько ошибок здесь, но, как сказала Парапура, только одна вызывает эту конкретную ошибку.

print "Please input info to write to the file\n";
my $input = <STDIN>; 
#Three argument open is better than a global filehandle
open (my $handle, '>>', 'information.txt') or die "$!";
until($input =~ /^exit$/) { #Better with ^$, else 'fireexit' will end the loop as well.
    print $handle $input;
    print "Enter 'exit' to exit or add more info\n";
    #Remove the 'my', else it is another variable than the one in the until clause
    $input = <STDIN>;
}
close ($handle) or die "$!";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...