Ho uno script Perl che annida i cicli foreach come mostrato di seguito. Ci vuole molto tempo:Come posso gestire il ciclo annidato senza annidare le istruzioni foreach in Perl?
#! /usr/bin/perl
use strict;
use warnings;
my @sites = ('a', 'b', 'c');
my @servers = ('A', 'B');
my @data_type = ("X", "Y", "Z");
foreach my $site (@sites) {
foreach my $server_type (@servers) {
foreach my $data (@data_type) {
#statements
}
}
}
Nesting foreach
dichiarazioni come questo richiede molto tempo ed è difficile da leggere e non molto carina. Qualcuno può suggerire un modo migliore per codificare questa struttura usando gli hash o qualche altra struttura intelligente?
Nessun problema con il codice. Se vuoi davvero fare ciò che hai scritto, allora questo è il modo per farlo. Se hai in mente qualcos'altro, descriverlo. – jrockway
Per prima cosa, hai impostato due volte gli avvisi. O farlo nella riga shebang ('#!/Usr/bin/perl -w') o farlo con' use' - non è necessario fare entrambe le cose. Io preferisco "usare" perché ha un ambito, ma alcuni preferiscono il "-w", forse proprio perché non è "ambito", o forse perché è più corto. –
@jrockway: Funziona bene per me, ma mi chiedo solo se posso avere un codice migliore di questo. – Space