Perl コーディング初心者質問コーナー Part28

このエントリーをはてなブックマークに追加
8782
ちと作業待ちでヒマなので余計だとは思うが、知らない人もいるかもしんないので追伸。

Shift_JISの2バイト目で、ASCII領域に引っかかってるのは、\x40-\x7Eの範囲。
この中で、記号に属するのが、

@ [ \ ] ^ _ ` { | } ~

とこれだけ。だからq[..]を使うのはちょっと危険かもな。

クオートや「$」が混じる心配しなくて良い。ダブルクオートで囲むと
「@」と「\」が問題になるが、シングルクオートなら問題になるのは、「\」だけ。

んで、2バイト目が「\」の場合、どうやってエスケープするかというと、
その後ろに「\」を連ねれば、2バイト目を含めて「\\」となりちょうど
エスケープされた状態になるので、うまく行く。かなり強引な解決方法。

<<'EOF'ならその問題もないが、コードが読みにくくなるのが難点。