- RU.PERL ----------------------------------------------------------- RU.PERL - Msg : #4015 [671] От : Alex Mikhajlichenko 2:5020/400 09 июля 04, 12:25 Кому : Anton Potekhin 14 июля 04, 22:51 Тема : Re: не волоку в перле ------------------------------------------------------------------------------- From: Alex MikhajlichenkoAnton 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)