全角ハイフンの履歴
で、元のテキストファイルの全角ハイフンを「od -t x1」
で見てみると「ef bc 8d」と「e2 88 92」の2種類が混じっていました。
前者は「\p{Hyphen}」にマッチするのですが後者はダメ。
まあ原因は分かったので、前処理でバイナリ置換して解決しました。
後者はハイフンでなくてマイナス記号でんがな。
とのことなんだけれども、実際には電話番号の区切り文字として入力されることがあるんだよね。なので、こいつも一緒に、
$string =~ s/\x{2212}/-/;
と置換した。