Мне только что был предоставлен фрагмент кода:
@list = grep { !$_{$_}++ } @list;
Как идиома для дедупликации. Кажется, что это работает, но - нет %_
, перечисленных в perlvar
.
Обычно я пишу выше, объявляя %seen
например:
my %seen; my @list = grep { not $seen{$_}++ } @list;
Но %_
, похоже, работает, хотя, похоже, это глобальный масштаб. Может ли кто-нибудь указать мне на нее ссылку? (Или, по крайней мере, успокойте меня, что выполнение вышеизложенного не разрушает что-то важное!)