複数行ヒット用正規表現がヒットしなくてうっへり

$tmp = << "test";
かしら
かしら
ご存じかしら!?
test

$tmp =~ s/かしら.+!?/カカロットォ!/sg;
print $tmp;

なんて正規表現は見事にヒットし、魂の叫びをコンソール結果に表示することが出来るのですが、置き換え対象文字を1つのテキストファイルとして書き出し、コンソール直打ちで正規表現置き換えを試みると……愛らしい台詞しか出でてこないのであったりします…何故…!?

# テキストファイル "tmp.txt"
かしら
かしら
ご存じかしら!?
perl -pe "s/かしら.+!?/カカロットォ!/sg" < tmp.txt
# ↑こうしても「かしら(略)ご存じかしら!?」が出力される

> perl -pe "s/かしら.+!?/カカロットォ!/sg" tmp.txt
# ↑こうしても「かしら(略)ご存じかしら!?」が出力される

「なんでかなー なんでかなー」と悩んで1時間。おいらはすごい事実に気づいてしまったのかしら…!










オプション -p は 1行ずつ しか読み取っていかねぇ。


// C#
string line = stdin.ReadLine();
while(line != null) {
  ......;
  line = stdin.ReadLine();
}

こんな感じ。




そりゃ

 まっち

  しない orz


…さて、どうしようかしらー

追記

結局テキストエディタで作業しました(苦笑 orz