The OpenNET Project / Index page

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

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

"Perl : Array in Hash"
Сообщение от Igor Искать по авторуВ закладки(??) on 21-Июн-04, 15:34  (MSK)
Можно ли в Hash добавить массив?

%myhash=();

sub myproc {

  my @myarray=();
  my %myhash2=();
  $myhash2=(num=>"1", text=>"One");
  push(@myarray, \%myhash2);

  # Возможно ли это действие?
  $myhash{'One'} = @myarray;
}
myproc;

# Здесь далее должен быть обработан весь myhash и сохраненные в нем массивы

Насколько я понимаю, в хешах нельзя сохранять массивы?
Спасибо

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Perl : Array in Hash"
Сообщение от Максим аки Фомин emailИскать по авторуВ закладки on 21-Июн-04, 18:43  (MSK)
>Можно ли в Hash добавить массив?
>
>%myhash=();
>
>sub myproc {
>
>  my @myarray=();
my (@myarray, %myhash2);
>  my %myhash2=();
>  $myhash2=(num=>"1", text=>"One");
>  push(@myarray, \%myhash2);
>
>  # Возможно ли это действие?
>  $myhash{'One'} = @myarray;
>}
>myproc;
>
># Здесь далее должен быть обработан весь myhash и сохраненные в нем
>массивы
>
>Насколько я понимаю, в хешах нельзя сохранять массивы?
:( отчего это ты так решил? Можно и даже нужно ;)
>Спасибо

А смысл так усложнять?

push @{$myhash{One}},[@myarray];
вуаля ..

см. Кэмэл г.9

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Perl : Array in Hash"
Сообщение от ACCA Искать по авторуВ закладки(ok) on 22-Июн-04, 00:14  (MSK)
>Можно ли в Hash добавить массив?

Нельзя. Но можно добавить ссылку на массив. В зависимости от того, что ты хочешь получить (ссылку на анонимную копию массива либо ссылку на массив, чтобы изменения массива были видны через ссылку в hash), можно написать:


>  # Возможно ли это действие?
[...]
>  $myhash{'One'} = @myarray;

$myhash{'One'}=\@myarray;

либо
$myhash{'One'} = [ @myarray ];


>Насколько я понимаю, в хешах нельзя сохранять массивы?

perldoc perldsc
perldoc perlre

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Perl : Array in Hash"
Сообщение от 1 emailИскать по авторуВ закладки(??) on 23-Июн-04, 15:21  (MSK)
да все время хранил в хэшах массивы и в массивах - хэши...
http://www.dimas.ncn.ru/books/perl/perlshelf/cookbook/ch11_03.htm
http://www.dimas.ncn.ru/books/perl/perlshelf/prog/ch04_07.htm#PERL2-CH-4-SECT-7.3

просто лабуда у меня иногда возникала, с вложеностью, когда например
хэш1->массив1->хэш2->массив2
хэш1->массив1->строка

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Perl : Array in Hash"
Сообщение от ACCA Искать по авторуВ закладки(??) on 16-Июл-04, 00:28  (MSK)
>да все время хранил в хэшах массивы и в массивах - хэши...

В хэшах ты хранишь ссылки на массивы, а в массивах - ссылки на хэши.

Принципиально важно понимать разницу между
[] и () или
{} и ().

Ссылки ты привёл верные, прочти их внимательнее.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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