可能重複:
How do I break out of a loop in Perl?的Perl - 停止讀取一個文件,如果多行匹配
我有數據,看起來就像你所看到的波紋管。我正在嘗試創建一個將捕獲選定文本的perl腳本。我的想法是說「如果上一行讀取全是 - 並且當前行讀取全部=',那麼請停止閱讀文件,並且不要僅用=和 - 打印這些行
但是,我不知道如何編寫代碼,我只是在3天前開始使用perl,我不知道這是否是最好的方式,讓我知道是否有更好的方法如果 無論哪種方式,你可以用代碼的幫助,我會很感激的
到目前爲止我的代碼:
...
$end_section_flag = "true" # I was going to use this to signify
# when I want to stop reading
# ie. when I reached the end of the
# data I want to capture
while (<$in-fh>)
{
my $line = $_;
chomp $line;
if ($line eq $string)
{
print "Found it\n";
$end_section_flag = "false";
}
if ($end_section_flag eq "false")
{
print $out-fh "$line\n";
// if you found the end of the section i'm reading
// don't pring the -'s and ='s and exit
}
}
什麼我的數據看起來像
-------------------------------------------------------------------------------
===============================================================================
BLAH BLAH
===============================================================================
asdfsad
fasd
fas
df
asdf
a
\n
\n
-------------------------------------------------------------------------------
===============================================================================
BLAH BLAH
===============================================================================
...
我想捕捉,因爲你的邊界跨越行尾
-------------------------------------------------------------------------------
===============================================================================
BLAH BLAH
===============================================================================
asdfsad
fasd
fas
df
asdf
a
\n
\n
您沒有以粗體顯示任何文本。 – Borodin 2012-07-12 14:58:05
[我如何擺脫Perl中的循環?](http://stackoverflow.com/questions/303216/how-do-i-break-out-of-a-loop-in-perl) – 2012-07-12 14:58:31
真實世界例子應該有所幫助從你的問題不清楚你想要達到什麼。顯示:1)你有什麼2)和你想得到什麼3)變成什麼變量。你的代碼沒有關於內容的任何條件 - 「$ end_section_flag」還沒有任何說明。 – jm666 2012-07-12 14:58:45