>>169
・$/(入力レコードセパレータ)をundefとか、local $/してから読み込む
 行で読んでから@htmlをjoinするのもいい
 htmlまとめてスカラ変数に入ったらsオプションつけて置換実行

・どうしても1行ずつやりたい時はflagを1個使えばいい
while(<HANDLE>){
  $flag and s!.*END!! ? $flag=0 : next;
  s!BEGIN.*END!!g;
  $flag = s!BEGIN.*!!;
  print;
}