Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к методу объекта 
V
    Опции темы
comtat
Дата 14.10.2007, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: нет
Всего: 71



Проблема в следующем 
в хэш массив я записываю ссылку на объект класс 
Код

# класс control
..
my $lookup = new select_lookup(\%data, $atribs);
$self->{lookup}{$field} = $lookup;
..

в дальнейшем мне необходимо обратиться к методу класса 
Код

# класс control
..
$val = $self->{lookup}{$key}->Apply($key, $val, $row);
..

на что Perl говорит следующее 
Цитата
Can't call method "Apply" on an undefined value at D:/wwwroot/LinBIS/lib/controls/control.pm ....

в $self->{lookup}{$key} содержится select_lookup=HASH(0x1d42ccc)
как правильно обраться к методу ?


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
nitr
Дата 14.10.2007, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



comtat, всё же протестируйте побольше ваше приложение, поставьте вывод переменных...
т.к. если съэмулировать ваш код, то всё ок...
Код

#!/usr/bin/perl
use strict;
use warnings;

my %data = ('name1' => 'data1', 'name2' => 'data2');
my $atribs = 'attrib1';
my $lookup = select_lookup->new(\%data, $atribs);
my $test;
my $field = 'field1';
$test->{lookup}{$field} = $lookup;
print $test->{lookup}{$field}."\n";

my $val = $test->{lookup}{'field1'}->Apply(1, 2, 3);
print $val;

package select_lookup;

sub new {
    my $class = shift;
    my $self;
    $self->{'data'} = shift;
    $self->{'attribs'} = shift;

    bless $self, $class;
    return $self;
}

sub Apply {
    my $self = shift;
    my ($key, $val, $row) = @_;
    return "key=$key ; val=$val ; row=$row";
}

1;



--------------------
PM   Вверх
comtat
Дата 15.10.2007, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: нет
Всего: 71



Все верно работает !! 
Это моя невнимательность меня подвела

nitr огромное спасибо 


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1065 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.