habe ich einen Code-Schnipsel gegeben gerade:Was ist "% _" in Perl?
@list = grep { !$_{$_}++ } @list;
Als Idiom für die Deduplizierung. Es scheint zu funktionieren, aber - es gibt keine %_
aufgeführt in perlvar
.
Ich würde normalerweise die oben schreiben von %seen
erklärt z.B .:
my %seen; my @list = grep { not $seen{$_}++ } @list;
Aber %_
scheint zu stehen, obwohl es globale Reichweite zu sein scheint. Kann mir jemand eine Referenz dafür geben? (Oder zumindest beruhigen Sie mich, dass das oben genannte nichts Wichtiges zerschmettert!)
Hier ist eine Diskussion darüber: http://www.perlmonks.org/?node_id=11757 –
Intriguing. Kann also so einfach wie ein Überbleibsel des _ _ typeglob sein? Ich frage mich, ob es vor 15 Jahren noch etwas Neues gab. (Aber ich denke, wenn es sich nicht geändert hat, gibt es keinen Grund dafür). – Sobrique
Nicht, dass Sie ein 'local% _;' im ersten Ausschnitt aus dem gleichen Grund benötigen, in dem Sie 'my% seen;' haben. – ikegami