名前付き引数をサクッとハッシュ化する
- [Perl]
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
コメント