我不是Perl的新手,但我很少用它来学习一个人需要记住的东西。现在我正在编写一个简单的脚本,它迭代文件的每一行并根据需要进行一些更改。有趣的部分看起来像这样:
while (<>)
{
$modified_line = ... # modify current line as required
print $modified_line; # print out the modified line
}
这一切都运行正常,但我只需要在文件的开头应用一些更改,并且我不喜欢仅为此迭代每一行的想法。 我宁愿在特定条件下打破循环并打印输出文件的其余部分不变。这可能吗?
while (<>)
{
$modified_line = ... # modify current line as required
print $modified_line; # print out the modified line
last if /^\[.*]$/; # break out if line is enclosed in []
}
# how to print out the rest of the file unchanged here?
答案 0 :(得分:4)
您只需添加
即可print while <>;
它仍会读取文件的所有其余内容 - 它必须能够将其余数据复制到输出中 - 但这确实不是问题。
答案 1 :(得分:2)
你的例子将继续无论如何。如果条件为真,则要退出,如下所示:
while (<>)
{
$modified_line = ... # modify current line as required
print $modified_line; # print out the modified line
last if /^\[.*]$/; # break out if line is enclosed in []
}