私はいくつかの計算を行うと、そのようにように別のサブルーチンにいくつかのプロパティを通過する機能を持っている:Perlでサブルーチンの引数としてハッシュを使用するにはどうすればよいですか?
sub get_result {
my $id = 1;
my %diet = (result => 28,
verdict => 'EAT MORE FRUIT DUDE...'
);
my %iq = (result => 193,
verdict => 'Professor Einstien'
);
print_result($id, %diet, %iq);
}
sub print_result {
my $id = shift;
my %d = @_;
my %i = @_;
print "IQ: $id\n";
print "DIET RESULT: $d{result}\n";
print "DIET VERDICT: $d{verdict}\n";
print "IQ RESULT: $i{result}\n";
print "IQ VERDICT: $i{verdict}\n";
}
私の問題は、結果は(DIET結果、DIETの判定)及び(IQスコア、IQで印刷ということですRESULT)はどちらも同じです。変数%dと%iに同じ変数が設定されているかのようにこれはなぜですか?
私はそうのような3つのすべての変数のシフトしようとした場合:
my $id = shift;
my %d = shift;
my %i = shift;
を私は次のエラーを取得:あなたは、配列(またはハッシュ)を渡すと
Odd number of elements in hash assignment
これは完璧に機能しました。私は様々なタイプ間の参照を誤解していたと思う。 (Scalar、Array、Hash) ありがとうManni –
あなたがその答えを受け入れると、他の人に役立つかもしれません。 (私は何らかの点で25の評判の点に気づくではありません) – innaM