Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > хэш массивов


Автор: shuttle 15.6.2011, 18:00
делаю ООП

Код

sub new
{
    my $class=shift;
    return bless({},$class);
}

Заношу данные
Код

$self->{array}{$count}{SpeechDuration}=$SpeechDuration;
$self->{array}{$count}{TimeCallEnded}=$TimeCallEnded;
$self->{array}{$count}{ReleaseSourse}=$ReleaseSourse;

Это все хэш, теперь нужно массив 
Код

push @{$self->{array}{$count}{warning}}, $line;

Пытаюсь вывести - ругается 
Код

foreach $WarningLine (@{$self->{array}{$count}{warning}}){
        print "$WarningLine\n";
    }


Global symbol "$WarningLine" requires explicit package name at Statistic.pm line 154.
Global symbol "$WarningLine" requires explicit package name at Statistic.pm line 155.

если выводить так 
Код

print $self->{array}{$count}{warning}[0];

то все нормально

что не правильно в цикле foreach?

Автор: alezzz 15.6.2011, 18:33
если use strict и $WarningLine нигде не объявлена, то 
Код

foreach my $WarningLine (@{$self->{array}{$count}{warning}}){

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)