Perlについての質問箱 18箱目
■ このスレッドは過去ログ倉庫に格納されています
0332デフォルトの名無しさん
2005/10/07(金) 15:13:541) 以下のソースで3行目のサブルーチンの先行宣言を止めると mainsub の引数が参照渡しではなくなってしないます。
2) 先行宣言を止めたままで mainsub(\%Hash) の様に呼び出すと参照渡しをしてくれます。
3) 先行宣言をした状態で mainsub(\%Hash) と呼び出すとエラー (... main::mainsub must be hash...) となります。
先行宣言と、引数での'\'の使い方、参照渡しの三つ巴のからみがどうなっているのか解かりません。
なにとぞご教授願います。
---------------------------------------------------
#!/bin/perl
sub mainsub (\%);
my %Hash = ();
mainsub(%Hash);
while (($key, $value) = each(%Hash)) {
print "$key = $value\n";
}
sub mainsub (\%) {
my ($ref) = @_;
$ref->{mainsub} = "I am mainsub";
}
■ このスレッドは過去ログ倉庫に格納されています