Perlについての質問箱 5箱目

このエントリーをはてなブックマークに追加
146デフォルトの名無しさん
perlの置換で連想配列の配列($a{$b}[$c]のような)を使用する場合
$hoge =~ s/$array{$foo}[$bar]/$array{$foo}[$hogehoge]/
上記の方法では、うまく置換されません。
$や[が正規表現上問題があるのはわかりますが、
どこに入れればうまくいくのかわかりません。
もしご存知の方がいらっしゃったら教えてください。
147デフォルトの名無しさん:03/05/27 21:59
Working directoryを作業用ディレクトリと訳しただけじゃないか
>>146
その例だと問題なく置換してしまうけど?

$foo = 'foo';
$array{$foo}[$bar = 1] = 'bar';
$array{$foo}[$baz = 2] = 'baz';

($hoge = 'foobar3baz') =~ s/$array{$foo}[$bar][123]/$array{$foo}[$baz]/;
print "$hoge\n"; # bazfoobar3baz

($hoge = 'foobar3baz') =~ s/${array{$foo}[$bar]}[123]/$array{$foo}[$baz]/;
print "$hoge\n"; # foobazbaz