|
Вывод массива (perl)
|
|||
---|---|---|---|
#18+
Народ подскажите пожалуйста. Пришлось срочно разобраться в чужом коде на перловке, а перловку я не знаю. В общем заполняется массив таким образом: push @{$mac2{$mac}}, [ $ip1, $desc ] ; # adding reference of array to array in a hash как мне далее в программе вывести элементы этого массива. Я так подозреваю что в качестве индекса этого хэша обычный mac (строка), а в качестве значения элемента массив из двух элементов (не важно какого типа). Только прикол весь в том, что в хэш заносится не значение а ссылка. В общем спецы подскажите как вывести этот хэш со всеми элементами, и если что-то я не так понял поправьте пожалуйста. Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2004, 16:09 |
|
Вывод массива (perl)
|
|||
---|---|---|---|
#18+
Alex2005Народ подскажите пожалуйста. Пришлось срочно разобраться в чужом коде на перловке, а перловку я не знаю. В общем заполняется массив таким образом: push @{$mac2{$mac}}, [ $ip1, $desc ] ; # adding reference of array to array in a hash как мне далее в программе вывести элементы этого массива. Я так подозреваю что в качестве индекса этого хэша обычный mac (строка), а в качестве значения элемента массив из двух элементов (не важно какого типа). Только прикол весь в том, что в хэш заносится не значение а ссылка. В общем спецы подскажите как вывести этот хэш со всеми элементами, и если что-то я не так понял поправьте пожалуйста. Заранее спасибо! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2004, 16:39 |
|
Вывод массива (perl)
|
|||
---|---|---|---|
#18+
Большое спасибо за ответ, но: 1. Вариант "конкретный" пишет "Use of uninitialized value in print" хотя данные в хэше точно есть. 2. Вариант "все" начал что-то выводить только когда добавил один символ в код (первая строка). Код стал такой: foreach my $mac ( keys %$mac2 ) { print "MAC: $mac\n"; foreach my $ref ( @{$mac2{$mac}} ) { print "\tIP: ", $ref->[0], ", DESC: ", $ref->[1], "\n"; } } да и он выводит только строки MAC: а те что с IP не выводит. Так что опять обращаюсь за помошью... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2004, 17:24 |
|
Вывод массива (perl)
|
|||
---|---|---|---|
#18+
kogda-to toje nujno bylo raspechatat' structuro is hashei i massivov, napisal funciu tipa print_r v php primer: my $a = { '2' => [ 3, { 'test' => 'test' } ] }; debug_print_struct($a) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2004, 17:48 |
|
Вывод массива (perl)
|
|||
---|---|---|---|
#18+
у тебя mac2 ( судя по тому как он пользуется $mac2{...} ) это именно хеш а не ссылка на хеш ты же пытаешся использовать ссылку на несуществующий хеш %$mac2... то что я писал у меня выводит следующее: (собственно код еще раз) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
ну и то что на выходе: gosha@b127:/tmp> perl 1.pl MAC: xxxxx IP: 192.168.108.127, DESC: test IP = 192.168.108.127 gosha@b127:/tmp> если у тебя таки ссылка на хеш ( хотя повторюсь то что у тебя в первом сообщении было это не ссылка а именно хеш ) то пользуйся во втором foreach конструкцией вида: foreach my $ref ( @{$mac2->{$mac} } ) ну и вариант "конкретный" :)) print "IP = ", $mac2->{$mac}->[0]->[0], "\n"; собственно если после '' ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2004, 17:59 |
|
Вывод массива (perl)
|
|||
---|---|---|---|
#18+
sky2kkogda-to toje nujno bylo raspechatat' structuro is hashei i massivov, napisal funciu tipa print_r v php primer: my $a = { '2' => [ 3, { 'test' => 'test' } ] }; debug_print_struct($a) дык есть же Data::Dumper Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2004, 18:07 |
|
Вывод массива (perl)
|
|||
---|---|---|---|
#18+
Парни, огромное спасибо за ответы!!! С ссылками у меня тоже немножко не прокатило, видимо знаний моих не хватает. А вот Data::Dumper это вешь - взял и вывел мне все, что я хотел. (Хотя если он вывел значит все-таки у меня там не ссылка наверное, в общем не знаю). Еще раз огромное всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2004, 18:22 |
|
|
start [/forum/topic.php?fid=23&fpage=504&tid=1479498]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 305ms |
total: | 438ms |
0 / 0 |