Perl Tips: 名前付き引数とデフォルト値
2018/10/28
名前付き引数
  • サブルーチンに引数を与える際、ハッシュを利用することで、名前付き引数を使うことができます。

  • 普通ならばサブルーチンの引数は、決められた順番通りに全ての値を与える必要があります。しかしハッシュを使えば、任意の順番で値を指定し、更にはデフォルト値を利用することもできます。

  • List 1: system関数使用例
    コード
      #!/usr/bin/perl -w
      use strict;
      
      {
          test(type=>'rtl', top=>'test_top');  # 名前付き引数
      }
      
      sub test {
          my %defaults = (               # デフォルト値
              top     => 'top module name',
              format  => 'verilog',
              freq    => '300MHz',
              type    => 'netlist',
              reset   => 'neg',
              buswide => '32'
          );
          
          my %subarg = (%defaults, @_);  # ハッシュとしてデフォルトと合わせて引数受け
          
          foreach my $key (sort(keys(%subarg))) {
              print "$key\t-> $subarg{$key}\n";
          }
      }
      
    出力
      buswide -> 32         <== デフォルト値
      format  -> verilog    <== デフォルト値
      freq    -> 300MHz     <== デフォルト値
      reset   -> neg        <== デフォルト値
      top     -> test_top   <== 変更値
      type    -> rtl        <== 変更値
      
Copyright(C) 2018 Altmo
本HPについて