在Perl中使用正则表达式退出循环

时间:2011-11-07 14:26:19

标签: perl

我将信息附加到文本文件中,并希望这样做,直到以字符串形式输入exit。

这是我使用的,但'exit'不想退出循环。

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 个答案:

答案 0 :(得分:2)

您的 $ input 之一隐藏了另一个 $ input 。从第二个中删除我。

答案 1 :(得分:1)

你在这里犯了一些错误,但正如parapura所说,只有一个会导致这个特殊的错误。

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 "$!";