我在理解子程序语法时遇到了困难.
使用以下代码:
sub build_dyne_file{
open(DYNAP, "+>$veri_dir/$dyna_para") or die $!;
for (keys %hash){
print DYNAP "#define ",$_," ",$hash{$_}->[$i],"\n";
}
close(DYNAP);
}
for (my $i = 0 ; $i <$TEST_QUOTA ; $i++){
build_dyna_file($i);
}
Run Code Online (Sandbox Code Playgroud)
在'build dyne file'子例程中,'for循环'遍历散列键,而$ i参数在外部'for循环'中使用.
我希望你理解这个问题,如果没有 - 我会试着更恰当地解释它.
谢谢你的回答.
你必须收到参数.
sub build_dyne_file {
my $i = shift; # take it off the parameter queue
...
Run Code Online (Sandbox Code Playgroud)
你在较低的for循环(使用)中使用词法范围声明它my,因此只有那个循环可以"看到"它.传递给它时build_dyne_file,需要接收参数.
请参阅perlsub