2
- 我的腳本正在從.txt文件中獲取數據。
- 我需要打印數據,直到找到該文件中的「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";
代碼不運行良好,當直到條件是取消註釋。
代碼中有一個非常微小的錯誤。 直到循環不應該被應用。
'直到'開始循環。你可能想要'最後如果$ ser_req =〜/ MSISDN1 /;'而不是('until')循環。你也需要平衡你的大括號{...}。你可以在嗅到內存後立即合理地關閉「SERVICE」;儘可能快地釋放文件等資源。如果你決定不偷懶,那麼你用''替換'foreach'()'或類似的東西。 –
謝謝你的精彩建議。 –
@Jonathan Leffler,很好的解釋了問題所在。做出答案。 – ikegami