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