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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массив в классе, Массив в классе 
:(
    Опции темы
alexey9
  Дата 18.3.2007, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 4.10.2006

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



Добрый вечер.
Подскажите пожалуйста, никак не могу въехать как в классе объявить массив, пример:

Код

sub new {                                                                                                               
    my $check = shift;                                                                                                  
    my $class = ref($check) || $check;                                                                                  
    my $self = { };                                                                                                     
                                                                                                                        
    $self->{__myname} = "SomeName";                                                                              
    $self->{__objPtr} = shift;                                 
                                                                                                                        
    $self->{someVariable} = 0;

// вот тут нужно объявть массив что бы потом из методов к нему обращаться например как
// push $self->{array}, "SomeData";
//          ^^^^^^^^^ - образно
                                                                                                                       
    bless ($self, $class);                                                                                              
    return $self;                                                                                                       
}

Заранее спасибо.
PM MAIL   Вверх
nitr
Дата 18.3.2007, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



alexey9, надо так и работать, так сказать с ссылкой на массив, т.е. объяви
$self->{__array} = [тут значения по дефолту если надо];

ну а где-то в теле модуля:
push @{$self->{__array}}, $value;

короче работа с ссылкой на массив...


--------------------
PM   Вверх
alexey9
Дата 18.3.2007, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 4.10.2006

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



Цитата(nitr @ 18.3.2007,  21:21)
короче работа с ссылкой на массив...

Спасибо, то что надо! 
PM MAIL   Вверх
tishaishii
Дата 24.3.2007, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: 4
Всего: 8



Цитата
вот тут нужно объявть массив что бы потом из методов к нему обращаться например как

Наверное, ты хотел Tie::Array?
PM MAIL ICQ Skype   Вверх
alexey9
Дата 24.3.2007, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 4.10.2006

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



Да не, работа с ссылкой вполне устраивает. Спасибо.
PM MAIL   Вверх
Zuzu
Дата 27.3.2007, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: 3
Всего: 4



Можно и так, с помощью "полноправных" методов. 

Вот обрезанный "кусок" из двух классов - "движка" для выбора картинок и "посредника", который собирает информацию для вывода на страницу

Код


package TumbnailsByKeywordId;     
# "движок" для выбора списка картинок по (одному) ключевому слову

...
sub images {
#
# ссылка на массив информации по картинкам
# (в формате шаблона HTML::Template)
#
# @IMAGES
#  ID     - ID картинки
#  WIDTH  - ширина
#  HEIGHT - высота
# ...
#
my $self = shift;
$self->{'IMAGES'} = [] unless(defined $self->{'IMAGES'});
if (@_) {
  $self->{'IMAGES'} = \@_;
}
return $self->{'IMAGES'};
}

sub select {
#
my $self  = shift;

my ($data, @images); # ... выбирает, в частности, картинки
...
while ($data = $sth->fetchrow_hashref ) {    # данные из запроса к БД
  ...здесь была их предварительная обратотка...
  #
  push @images, $data;
}
$self->images(@images);
...
}



Код

...
Где-то в другом классе-посреднике по подготовки данных для страницы...
...
my $aTumbnails = new TumbnailsByKeywordId ($self);
#
# подготовка параметров 
$aTumbnails->keywordId($keywordId);
...
$aTumbnails->select;    # выбор
#
# передача шаблону
$self->addToTemplateData(
  'KWD_IMAGES'           => $aTumbnails->images,      # картинки
   ...
);
}



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


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

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


 




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


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

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