• ベストアンサー

デゴートについて

初心者です。お願いいたします。 デゴートについての基礎を学んでいるのですが 行き詰っています。 $value=~s/%([a-fa-F0-9][a-fA-F0-9])/pack('C',hex($1) )/ge; という文なのですが、この解釈の仕方がイマイチ分かりません。 ●s/// = 置き換え演算子 ●『%([a-fa-F0-9][a-fA-F0-9])』を『pack('C',hex($1))』 に変換する ●hex関数 = 16進数に変換する ・・・と自力で少し理解してみたのですが、参考書によると、hex関数で16進数を10進数に変換する・・と逆のことが書いてあるんです(TT) それと最後の『ge』とはどういう意味なのでしょうか。 理解不足で申し訳ないのですが、どなたか詳しい方、アドバイスいただければ助かります。お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mrumesuke
  • ベストアンサー率45% (254/557)
回答No.2

Perlの文法に関する質問はCGIカテゴリよりPerlカテゴリが適しているような気がしますが、それはさて置き、nekocyaさんが今問題としているのは、hex関数とgeオプションだけでしょうか。 hexについては、とほほさんの解説通り「引数を16進数の文字列と解釈してその値を返す」と理解すべきでしょう。(「16進数を10進数に変換する」というのは、関数そのものの解説文ではないような気がします。) 『ge』についての説明は割愛します。 詳しくはとほほさんのリファレンスをご覧下さい。 hex関数 http://tohoho.wakusei.ne.jp/wwwperl2.htm#hex 文字列置換 http://tohoho.wakusei.ne.jp/wwwperl1.htm#ReplaceOperand # デゴートとはデコード(decode)のことでしょうか。

nekocya
質問者

お礼

お返事遅くなりました。とても参考なり助かり ました!ありがとうございます! ちなみにデコードでした!

その他の回答 (1)

  • negi-bozu
  • ベストアンサー率25% (5/20)
回答No.1

正規表現を覚えてください。

参考URL:
http://www5a.biglobe.ne.jp/~n_rieko/perl/8.htm
nekocya
質問者

お礼

はいTT ありがとうございました。

関連するQ&A