人気ブログランキング | 話題のタグを見る
perl。。。覚書。。。1。。。
perlでのパターンマッチ・置換の代表であるところの置換演算子
s/パターン/文字列/であるが、どうも、思ったような動作をしなかったので、いろいろ試してみたところ、とんでもない癖があることがわかったので、メモしておく。手元の2冊のマニュアルには触れられていなかったが、おそらく、その道の専門の方々にとっては、既知の事柄であろう。。。

問題点
$obj =~ s/$pattern/$string/
としたとき、$stringに$1,$2などの後方参照が含まれていた場合、評価されない。
対応策
全体をダブルクォートし、eval関数にて評価してやる。
ブロックとしてeval関数にて評価しても、なんにもならない。


$pat = '([0-9]*)\.([0-9]*)\.([0-9]*)';
$str = '$1:$2:$3';

$e = $d = $c = $b = $a = "332.345204.56";

$b =~ s/$pat/$str/;
     #<--- 一見よさげだが、おかしい。
eval { $c =~ s/$pat/$str/ };
     #<--- これでもだめ。
eval "\$d =~ s/$pat/$str/";
     #<--- この形にする必要がある。
$e =~ /$pat/;
$e = $1.":".$2.":".$3;
     #<--- 念のため、パターンマッチと置換とを分離して確認。

print $a."-->".$b."\n";
print $a."-->".$c."\n";
print $a."-->".$d."\n";
print $a."-->".$e."\n";

実行結果
C:\bin>perl test.pl
332.345204.56-->$1:$2:$3
332.345204.56-->$1:$2:$3
332.345204.56-->332:345204:56
332.345204.56-->332:345204:56

by kisugi_jinen | 2006-08-31 18:38 | program。。。 | Trackback | Comments(0)
<< 言語の規制と知的切断。。。ウィ... 名古屋コーチン卵八丁味噌いちじ... >>



「ともし火に我もむかはず燈(ともしび)もわれにむかはず己がまにまに」(光厳院) --- 厳然とした境界を越え得ぬとき、その上でなお、越えうるものがあるとすれば、それは「情」である。

by kisugi_jinen
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
検索
カテゴリ
最新の記事
お知らせとリンク。。。
お知らせ
●コメントスパム対策のため、承認制に変更しました(2010.09.29)
●トラックバックのリンクチェック機能を追加しました。excite以外からのトラックバックをされる場合、当該記事へのリンクを埋め込んでください。
リンク
ゲストブック
---Yahooジオシティーズ終了に伴い、利用できなくなっています。
来生自然のホームページ
---Yahooジオシティーズ終了に伴い、利用できなくなっています。
鉄鼠
---「考える」ということに向き合う。。。
Genxx.blog
移転後http://blog.genxx.com/
---「情」を含めて専門的な立場から「こころ」を模索し続けるGenさんのブログ。。。
研幾堂
---山下裕嗣氏による哲学のサイト。以前、形而上学についてやりとりさせていただいた。
記事ランキング
最新のコメント
グローバル大納言さま ..
by kisugi_jinen at 00:13
最近はChatGPTや生..
by グローバル大納言 at 09:12
花の名前も、花言葉も知ら..
by kisugi_jinen at 07:26
> hatekatsu卿..
by kisugi_jinen at 10:05
ふるさととは根源的で絶大..
by hatekatsu卿 at 11:18
最新のトラックバック
以前の記事
フォロー中のブログ
外部リンク
ブログパーツ
ライフログ
ファン
ブログジャンル
画像一覧