The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"передача хэш массива"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"передача хэш массива"  
Сообщение от Ром email on 07-Сен-06, 08:35 
вечер добрый...
не получается передать хэш массив пакету(модулю), пожалуйста помогите...
конструктор:

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}..
сори, что путано, терминологией не владею... =))
заранее благодарен....

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "передача хэш массива"  
Сообщение от madskull (ok) on 07-Сен-06, 09:29 

>sub foo {
>    my $self = shift;
>    if (@_) {$self{data} = shift;}
>    print $self{data}{чтототам};
>}
>
Надо использовать $self->{data}. Везде.

Делая $self{data} = shift создается новый хэш %self, который, естессно, умирает при выходе из области видимости.

Советую использовать use strict, тогда не будет таких ошибок.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "передача хэш массива"  
Сообщение от Ром email on 07-Сен-06, 16:05 
>Надо использовать $self->{data}. Везде.
>
>Делая $self{data} = shift создается новый хэш %self, который, естессно, умирает при
>выходе из области видимости.
>
>Советую использовать use strict, тогда не будет таких ошибок.
О! =))
Спасибо... =))


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру