私は次のように印刷され配列から読み取ったときに#のエスケープが消えるのはなぜですか?
$element=~s/#/\\#/g;
、私が使用して#をエスケープ文字列、
my $element="abc#$def"
を持っています。完璧である、abc\#$def
。
push(@arr,$element);
foreach $val (@arr)
{
print $val;
}
そしてforeachループ内に印刷される値である:コードの
次の部分であるabc#$def
。
ここで#
がエスケープされないのはなぜですか?そして、どうやってエスケープすることができますか?あなたが期待するよう
このコードは、私のマシン上で動作\
編集をエスケープする必要が
$element=~s/#/\\#/g;
:このようなもので
おかげでジョナサンの他の部分からあなたに副作用を与えているwarnings' '使用strict'と'使用の欠如を考えて、私はそれが理由だった場合には、不思議を「厳格な使用」見逃していました。必要に応じて作業する。 :) – Mini