看板 Perl 關於我們 聯絡資訊
: : foreach $line (<FID>) { : : if( $line =~ /^0/ ){ #line開頭為0的就跟上一行合併 : : $line =~ s/\n//, $line ; : : } else { : : print $line; : : } : : print $line; : : } : : 但是檔案紋風不動....orz : : 能請板上高手幫忙檢查一下哪裡出了問題ㄇ? : 比對的部份我覺得很奇怪,你這個方法的邏輯是 : 「如果開頭為 0 ,我就把這一行的換行給去掉」 : 可是第一行跟地二行之所以會分開來,是因為第一行最後面的 newline ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 哎呀 我真是腦殘 orz...... : 而非第二行 (開頭為0) 的 newline ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 你說的對 我focus錯地方了 /n 是在上一行結束時出現而不是第二行的頭 : 因此我改成「只要開頭不是 0,就把 newline 去掉」 : foreach $line (<FID>) { : chomp($line) if ($line !~ /^\s0/); : print $line; : } : ^\s0 <--開頭有隔一個空格才出現 0 : 如果只是要單純地把第一行跟第二行合併 : $i = 0; : foreach $line (<FID>) { : chomp($line) if (++$i%2 == 1); // $i 遞增,mod 2 如果是 1 代表奇數行 : print $line; : } 感謝您的協助 讓我看清這盲點 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.96.144
WalkingIce:你是威而康 06/07 15:56
stevennick:似乎 可以只使用 chomp 去掉換行符號 06/11 23:57
stevennick:還有。。。印象中foreach是一次抓一行來做 06/11 23:58
stevennick:你的問題可能要另外想個方法解決~ 06/11 23:58