【Perl,PHP】LLバトルロワイヤル4【Ruby,Python】

このエントリーをはてなブックマークに追加
378デフォルトの名無しさん
以下の内容は、某スレに書き込んだものなんだけど、自分には結構面白いやり
取りになったので、いろんな言語でやってみたくなった。

ある大きな連想配列から、いくつかのキーを持つ要素だけを取り出した、部分
連想配列を作りたい。

// PHP版
$request = array('hoge'=>1, 'fuga'=>2, 'piyo'=>...
//これからキーが hoge, fuga の物だけを取り出すとすると、

foreach (array('hoge', 'fuga') as $param) {
$a[$param] = $request[$param];
}

これ、いろんな言語で、なるべく簡潔に書くにはどうしたらいいだろう?
379デフォルトの名無しさん:2009/03/02(月) 14:11:16
>>378
Perlで
my %request = ('hoge'=>1, 'fuga'=>2, 'piyo'=>3);
my %a = (); my @keys = ('hoge', 'fuga');
@a{@keys} = @request{@keys};

ググってサンプルを見ながら適当に。なんかおかしいorもっと簡潔に書けるかも。
380デフォルトの名無しさん:2009/03/02(月) 15:00:14
>>379
Perl って、
・連想配列の引数に、配列を与えられるのか。すげー。
・変数名のプレフィックスが型によって違うから、目がちかちかするのう。

Perl講座 2章 [変数]
http://www.site-cooler.com/kwl/perl/2.htm