![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » [решено] Perl хэш двумурных массивов |
|
[решено] Perl хэш двумурных массивов
|
Пользователь Сообщения: 127 |
Добрый день!
Использую Perl 5.18 и пытаюсь добавить двумерные массивы в хэш (тип $hash{$key}=@matrix, где @matrix = двумерный массив, или массив массивов, кому как удобней в выражении). Помогите с выводом таких хэшей и адрессацией элементов. пример кода в котором я задаю массив и присваиваю его в хэш my %hash, @matrix; my @hash_key=qw(firs second 3rd 4rd 5rd); foreach (@hash_key) { # перебираем ключи для хэша undef @matrix; # обнуляем массив $n=1+int(rand(4)); # задаём кол-во строк в матрице print "\n\n\t Strok $n\n"; for (my $j=0; $j<=$n; $j++) { # заполняем матрицу push(@matrix,['n+j='.($n+$j), 'n-j='.($n-$j), 'n*j='.($n*$j)]); # добавляем в массив массив из 3х элементов } print "\n\n matrix chek:\n"; for (my $i=0; $i<$#matrix; $i++) { print "\n$i\n"; print "$_\t" foreach(@{$matrix[$i]}); } $hash{$_}=@matrix; # присваиваем очередному ключу матрицу } foreach my $key (sort keys %hash) { # перебор ключей хэша print "\n Key:$key\n"; # # а дальше пытаюсь вывести, и фэйл. что-то не так # for (my $i=0; $i<=$#{$hash{$key}}; $i++) { print "\n$i\n"; print "$_\t" foreach(@{${$hash{$key}}[$i]}); } } заранее спасибо! |
|
Отправлено: 15:19, 06-09-2016 |
Пользователь Сообщения: 127
|
Профиль | Отправить PM | Цитировать победил!
ошибка крылась в присваении матрицы в хэш. попробовал присваивать так и всё встало на свои места либо сразу пушить в хэш, дабы сыкономить на коде ![]() for (my $j=0; $j<=$n; $j++) { # заполняем матрицу push(@{$hash{$key}},['n+j='.($n+$j), 'n-j='.($n-$j), 'n*j='.($n*$j)]); # добавляем в массив массив из 3х элементов } ![]() |
Отправлено: 15:46, 06-09-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PERL многомерный хэш. Вывести первый ключ | Тишина | Программирование в *nix | 4 | 01-06-2017 14:10 | |
Info - Что это за хэш? | Scaltro | Защита компьютерных систем | 0 | 21-07-2014 22:53 | |
FreeBSD - ХЭШ | Ruslan19891989 | Общий по FreeBSD | 0 | 02-11-2011 17:36 | |
Прочие БД - обработка массивов в postgres | PhilB | Программирование и базы данных | 0 | 22-09-2010 19:13 | |
FreeBSD 5.3 Perl не видит локали, а KDE при сборке не видит perl :o | mar | Общий по FreeBSD | 8 | 06-05-2005 13:13 |
|