Ich habe ein Perl-Skript, das foreach Schleifen nistet, wie unten zu sehen. Es dauert eine lange Zeit:Wie kann ich geschachtelte Schleifen verarbeiten, ohne foreach-Anweisungen in Perl zu verschachteln?
#! /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
Aussagen wie diese eine lange Zeit in Anspruch nimmt und es ist schwer zu lesen und nicht sehr hübsch. Kann jemand einen besseren Weg vorschlagen, diese Struktur mit Hashes oder einer anderen cleveren Struktur zu codieren?
Es gibt kein Problem mit dem Code. Wenn Sie wirklich das tun wollen, was Sie geschrieben haben, dann ist dies der richtige Weg. Wenn Sie etwas anderes im Kopf haben, beschreiben Sie das. – jrockway
Zum einen haben Sie Warnungen zweimal aktiviert. Entweder tun Sie es in der Shebang-Zeile ('#!/Usr/bin/perl -w') oder tun Sie es mit' use' - Sie müssen nicht beides tun. Ich bevorzuge "verwenden", weil es begrenzt ist, aber einige bevorzugen das "-w", vielleicht gerade weil es nicht ist, oder vielleicht, weil es kürzer ist. –
@jrockway: Es funktioniert gut für mich, aber ich frage mich, ob ich einen besseren Code als das haben kann. – Space