вечер добрый...
не получается передать хэш массив пакету(модулю), пожалуйста помогите...
конструктор:sub new {
my $class = shift;
my ($self,%common) = @_;
$self = {
data => {},
error => 0,
};
$self->{'error'} = $common{'error'} if $common{'error'};
bless ($self, $class);
return $self;
}до хэша, который я в него передаю можно добраться только через $self{data}{чтототам}
sub foo {
my $self = shift;
if (@_) {$self{data} = shift;}
print $self{data}{чтототам};
}Хэш передается так:
my $use = Pkg -> new();
$use -> foo( \%hash );возможно ли, сделать так, чтобы обращение к хэшу выглядело $self{чтототам}, но при этом работал и $self{error}..
сори, что путано, терминологией не владею... =))
заранее благодарен....
>sub foo {
> my $self = shift;
> if (@_) {$self{data} = shift;}
> print $self{data}{чтототам};
>}
>
Надо использовать $self->{data}. Везде.Делая $self{data} = shift создается новый хэш %self, который, естессно, умирает при выходе из области видимости.
Советую использовать use strict, тогда не будет таких ошибок.
>Надо использовать $self->{data}. Везде.
>
>Делая $self{data} = shift создается новый хэш %self, который, естессно, умирает при
>выходе из области видимости.
>
>Советую использовать use strict, тогда не будет таких ошибок.
О! =))
Спасибо... =))