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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сложные/составные структуры данных 
:(
    Опции темы
_hunter
  Дата 11.12.2007, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Добрый день.

Можно ли как-то в Perl'е создавать/использовать такие структуры данных как двумерные массивы и map-ы векторов?

С уважением... 



--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
tishaishii
Дата 11.12.2007, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Код

my@var=(
   [1..2], [4, 'a']
);
print join("\t", @$_), "\n" foreach @var;


Код

$\="\n";

sub iter {
   my$var=\shift;
   +sub {++$$var+2*shift}
};

my$from=102;
my$iter=&iter($from);

print &$iter($from) while $from++<200;
print '$from=', $from;

PM MAIL ICQ Skype   Вверх
AlexPet
Дата 11.12.2007, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Лучше всего на эту тему полистать книгу 
O'Reilly - Intermediate Perl (1st Edition, 2006)
А так, двумя словами: двумерный массив - это одномерный массив, состоящий из ссылок на одномерные массивы
Код

my @arr1 = (1, 2);
my @arr2 = (3, 4);
my @arr = (\@arr1, \@arr2);

Код

my @arr = ([1, 2], [2, 4]);


Упс, пока писал ответ, опередили smile

Это сообщение отредактировал(а) AlexPet - 11.12.2007, 13:35
PM MAIL ICQ Jabber   Вверх
_hunter
Дата 11.12.2007, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



а что такое [1..2] в первом примере? -- задание размера?
и как мне поотдельности получить каждый елемент в foreach-е? -- @$_[0]?

второй пример я вообще не понял...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
AlexPet
Дата 11.12.2007, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(AlexPet @  11.12.2007,  13:33 Найти цитируемый пост)
Лучше всего на эту тему полистать книгу 
O'Reilly - Intermediate Perl (1st Edition, 2006)


PM MAIL ICQ Jabber   Вверх
tishaishii
Дата 11.12.2007, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Получить первый элемент:
Код
print join("\t", $$_[1]), "\n" foreach @var;

Что такое 1..10, 'a'..'z':
Код
print join "\n", 1..10;

Второй пример показывает возможность создавать итераторы, т.е. функция создаёт другую функцию, которая может пользоваться адресным пространством родительской. С помощью итераторов можно просматривать последовательности не храня их, а на ходу формируя нужный элемент последовательности.
PM MAIL ICQ Skype   Вверх
_hunter
Дата 11.12.2007, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



AlexPet, я видел smile
но мне это нужно сейчас на сейчас. и, возможно, одноразово. т.е. ехать за книгой нет ни времени ни (еще не уверен) необходимости.


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
shamber
Дата 11.12.2007, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



_hunter, можете попробовать в интернете эту книгу найти.... точно есть smile
PM MAIL Jabber   Вверх
AlexPet
Дата 11.12.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



http://www.pdfchm.com/book/intermediate-perl-1660/
только на сайте нужно зарегиться (бесплатно), и это того стоит
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

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


 




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


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

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