[Moscow.pm] reverse изменяет аргумент

iSage isage на aumi.ru
Пн Окт 1 09:45:00 PDT 2012



Знаем. Только если аргументом хэш. И об этом сказано в документации.


This operator is also handy for inverting a hash, although there are
some caveats. If a value is duplicated in the original hash, only one of
those can be represented as a key in the inverted hash. ALSO, THIS HAS
TO UNWIND ONE HASH AND BUILD A WHOLE NEW ONE, which may take some time
on a large hash, such as from a DBM file. 

On Mon, 1 Oct 2012 19:20:52
+0400, Denis Evdokimov  wrote:  

А знаете ли вы, что reverse изменяет
свой агрумент?
В этом легко убедиться с помощью JSON или Devel::Peek
:

perl -MJSON -e'my %a=(int => 222); print to_json %a; my %b=reverse
%a; print to_json %a;'
 {"int":222}{"int":"222"}

perl -MDevel::Peek
-e'my %a=(int => 222); Dump $a{int}; my %b=reverse %a; Dump $a{int};'
SV
= IV(0x1036d40) at 0x1036d48
 REFCNT = 1
 FLAGS = (IOK,pIOK)
 IV =
222
SV = PVIV(0x1051220) at 0x1036d48
 REFCNT = 1
 FLAGS =
(IOK,POK,pIOK,pPOK)
 IV = 222
 PV = 0x1056220 "222"
 CUR = 3
 LEN = 8

 
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20121001/a3ab9224/attachment.html>


Подробная информация о списке рассылки Moscow-pm