Sono perl principiante, sto leggendo sulla funzione grep
per filtrare un elenco. Mi sono imbattuto nel seguente programma.
#!/usr/bin/perl
use strict;
use warnings;
# initialize an array
my @array = qw(3 4 5 6 7 8 9);
# first syntax form:
my @subArray = grep { $_ & 1 } @array;
la dichiarazione my @subArray = grep { $_ & 1 } @array;
rendimenti dispari-numeri in @array
. Non ho capito come funziona l'espressione ($_ & 1
). Ho cercato su Google ma non ho trovato link utili.
È che tipo di operatore speciale?
Esistono altre varianti di quello EXPR?
Grazie in anticipo.
FYI: questo è un hack molto ordinato ** che non dovrebbe mai essere utilizzato nel codice di produzione ** meno che l'operazione di trovare elementi solo dispari è valutato per essere un collo di bottiglia in un implementazione più leggibile. – DVK
@DVK Hm, come per il mio interesse: questo suggerimento è usato? '$ _ || = $ val' – gaussblurinc
@loldop - L'operatore' || = 'è perfettamente idiologico Perl, non un hack. Tuttavia, l'uso di '$ _' anziché utilizzare una variabile variata in modo auto-documentato è molto spesso un segno di codice scritto male se non utilizzato in un blocco' map'/'grep' molto breve. – DVK