0
具有以下錯誤:有HASH參考問題用Perl
Name "main::s" used only once: possible typo at line 22.
Not a HASH reference at line 5.
sub addtwo {
my $params = shift;
my $s = $params->{structure};
if (ref($s) eq "LIST") {
$c = 0;
foreach $e (@{$s}) {
$s->[$c] = addtwo({ structures => $e });
$c++;
}
}
elsif (ref($s) eq "HASH") {
if (scalar keys %{$s} == 0) {
return undef;
}
else {
foreach my $e (values %{$s}) {
$s{$e} = addtwo({ structure => $s->{$e} });
}
}
}
else {
$s = 1;
}
return $c;
}
print addtwo(
[
{ a => 1, b => 2, c => 3 },
{ d => 4, e => 5 },
[ 6, 7, 8 ],
9,
10,
11,
[ 12, 13, 14 ]
]
);
把'$ s {$ e}'改成'$ s - > {$ e}'? – toolic
修復了第一個錯誤。非常感謝。 :) – user3047080
第二個錯誤:你在最後一行傳遞了一個數組引用addtwo。 – toolic