while(<>) { print if /BEGIN/ .. /END/ }

とやると、BEGINが含まれる行からENDが含まれる行がprintされるけど、
BEGINとENDが含まれる行はprintしないようにするエレガントな方法ってある?

何も考えずに書くと、

while (<>) {
  if (/BEGIN/../END/) {
    next if /BEGIN/;
    next if /END/;

    print;
  }
}

という、だっさいコードになるんだけど。