Я должен изучить Perl для собеседования на выходные. Чтобы получить более глубокое понимание, я пытаюсь реализовать древовидный класс.Реализация дерева в Perl - Дети отрезаны
#use strict;
#use warnings;
package Tree;
sub new {
my $class = shift @_;
my $content = shift @_;
my @array = shift @_;
return bless { "content" => $content, "array" => @array }, $class;
}
sub num_children {
my $self = shift @_;
my @array = $self->{"array"};
return scalar @array;
}
return 1;
Для проверки дерева дефектов я выполнил следующий тестовый скрипт.
#!/usr/bin/perl
require Tree;
my $t = Tree->new("#", undef);
my $tt = Tree->new("*", undef);
my $tttt = Tree->new("-", undef);
my $ttttt = Tree->new(".", undef);
my @list =();
push @list, $tt;
push @list, $t;
push @list, $tttt;
push @list, $ttttt;
my $ttt = Tree->new("+", @list);
print $ttt->num_children();
К сожалению, выход 1
вместо моего expection из 4
. Я предполагаю, что массив как-то отрезан или невообразимо преобразован в скаляр. Есть идеи?