我执行的代码是:
open (SERVICE, "Service Req.txt") || die "Cannot open service req file $!\n";
my @serv=<SERVICE>;
open(LOG, ">>logfile.txt");
foreach $ser_req(@serv) {
#until ($ser_req =~ m/MSISDN1/g)
{
print $conn $ser_req;
print LOG $ser_req;
print $ser_req;
}
close(LOG);
close (SERVICE) || die "Cannot close service req file $!\n";
当取消注释条件时,代码运行不正确。
代码中有一个非常小的错误。 不应该应用until循环。
答案 0 :(得分:1)
until
开始循环。你可能想要
last if $ser_req =~ /MSISDN1/;
而不是(until
)循环。您还需要平衡大括号{ ... }
。
在将文件拖入内存后,您可以立即明智地关闭SERVICE
。尽可能快地释放文件等资源是个好主意。如果您决定不啜饮整个文件(这可能会更好,特别是如果标记文本出现在大文件的开头附近),那么您将foreach
循环替换为while (<SERVICE>)
或类似的东西。