Имея следующие ошибки:Имея 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