< New Comment Posted to の文字化けをなおす。 | 文字列を折り返す・・・とか >

December 19, 2003

名前付き引数をサクッとハッシュ化する

Perlで名前つき引数ってこんな感じに書く。サブルーチン内では省略されたときの初期値をエレガントに設定する。

sub mySub {
	%args	= (
		PARAM1		=> '', 
		PARAM2		=> 5, 
		PARAM3		=> '', 
		@_
	);
	return \%args;
}
# 呼び出す
$ret	= mySub( PARAM1	=> 'foo', 
				PARAM2	=> 123, 
				PARAM3	=> 'bar');

でも、VBな私は引数名の大文字小文字の区別がないようにしたい。さらに、ハッシュのキーをすべて大文字にしたい。したがってこう。

sub mySub {
	my %args	= @_;
	%args	= (
		PARAM1		=> '', 
		PARAM2		=> 5, 
		PARAM3		=> '', 
		( map { uc( $_ ) => $args{$_} } keys( %args ) )
	);
	return \%args;
}
# 呼び出す
$ret	= mySub( Param1	=> 'foo', 
				pArAm2	=> 123, 
				param3	=> 'bar');

トラックバック

このエントリーにトラックバック:
http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/142

コメント

コメントする

※ コメントスパム対策のため、コメント本文はおはよう、こんにちわ、こんばんわのいずれかより始めるようにしてください。

name:
email:

※ 必要ですが、表示しません。

url:
情報を保存する ?