コード
#!/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 <== 変更値
|