2
  1. 我的脚本正在从 .txt 文件中获取数据。
  2. 我需要打印数据,直到在该文件中找到“MSISDN1”。

我执行的代码是:

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

当未注释直到条件时,代码运行不佳。

代码中有一个非常微小的错误。不应该应用直到循环。

4

1 回答 1

1

until开始一个循环。你可能想要

last if $ser_req =~ /MSISDN1/;

而不是 ( until) 循环。你{ ... }也需要平衡你的牙套。

SERVICE将文件放入内存后,您可以立即关闭。尽快释放文件等资源是个好主意。如果您决定不删除整个文件(这可能会更好,特别是如果标记文本出现在大文件的开头附近),那么您将foreach循环替换为while (<SERVICE>)或类似的东西。

于 2013-04-01T08:21:22.883 回答