このような単純な文で間違っていることを理解できません。問題は、ライン上で発生します。Perl:バックスラッシュをエスケープしない文字列
$this->_validate_hash($hashref->{$key}, $schemaref->{$key}, $path . (ref($hashref->{$key}) ? $key . "/" : "\\\@$key"), $errors);
だから私は物事が/path/to/some/\@attribute
で終了します。しかし、私は現時点ではpath/to/some/\\@attribute
です。私は'\\' . '@' . $key
または'\@' . $key
または'\\@' . $key
を含む最後の部分についてさまざまなコンボを試しましたが、私はまだバックスラッシュをエスケープできません。これは、私が気づいていないperlの文字列ではいくつかの奇妙なものですか?ありがとう。
私のために働きます。可能な最小限のコードで再現できますか? – mkb
さて、私はちょっとばかばかしいと感じます。それはうまくいきますが、ハッシュを印刷するときに値が一重引用符で囲まれているので、そうでないようです。したがって、 ''/path/to/some/\ @属性 ''は' 'key' => 'path/to/some/\\ @ attribute''としてレンダリングされます。助けてくれてありがとう :) –