お世話になっています。

>>899を元にして自分で色々やってみたところ、pack("H2", "2A")では「*」が表示されましたが、
>>897の「ミケネコ」に関しては、どうしても自力では理解できそうにないです。

とりあえず、(1)と(2)を実行すると確かに"%83%7E%83P%83l%83R"は「ミケネコ」になるので
サイトは間違っていないようなのですが、文字コードの変換ができるやつで調べてみたところ、
16進コードは次のようになっていました。

ミ→837E ケ→8350 ネ→836C コ→8352

"%83%7E%83P%83l%83R"を見ると、「P」や「l」や「R」が入っていて意味不明だったのですが、
これの16進コードがちょうど次のようになっていました。
(だから何?というのはちょっと分からないんですけど…)

P→50 l→6C R→52

それで、pack("H4", "837E")は「ミ」になるのは何となく分かりました。
この第2引数のところを「83P」、「83l」、「83R」にしても、それぞれ「ケ」「ネ」「コ」には
なりませんでしたが、「8350」、「836C」、「8352」にすれば「ケ」「ネ」「コ」になりました。

そしてpack("H2", "83P")も「ケ」にはなりませんが、
$test = "83P";
$test =~ s/([0-9a-fA-F][0-9a-fA-F])/pack("H2", $1)/eg;
とすると何故か$testが「ケ」になりました。

これはどういうことなんでしょうか? ますます分からなくなってきました。
どなたかご教授お願いいたします…。
(※16進数についてはほとんどよく分からないので何か間違っているかもしれません)