|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alex Mikhajlichenko 2:5020/400 09 Jul 2004 12:25:57 To : Anton Potekhin Subject : Re: не волоку в перле -------------------------------------------------------------------------------- Anton Potekhin wrote: > такой вопрос что значит вот эта конструкция ? > @attr = map { $_ => $attr->{$_} } @$attrseq; use strict; use Data::Dumper; my $attr = {1=>'aaa', 2=>'bbb', 3=>'ccc'}; my $attrseq = [1,2]; my @attr = map { $_ => $attr->{$_} } @$attrseq; print Dumper(@attr); Результат: $VAR1 = 1; $VAR2 = 'aaa'; $VAR3 = 2; $VAR4 = 'bbb'; Другими словами, $attr - ссылка на какой-то хеш, где каждому ключу сопоставлен какой-то атрибут; $attrseq - ссылка на массив - набор некоторых ключей; а в массив @attr запихиваются ключи из $attrseq, а вслед за каждым ключом - его атрибут из $attr. map перемалывает список, приходящий на него справа, и вместо каждого текущего элемента $_ возвращает налево результат выражения $_ => $attr->{$_}, то есть - список из текущего элемента и его атрибута. => это просто синоним запятой в списке. -- * --- ifmail v.2.15dev5.3 * Origin: Chereda News Server - http://www.chereda.net/ (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/10211dded7eb6.html, оценка из 5, голосов 10
|