Я пытаюсь напечатать значение из одного цикла foreach.Затем перейдите к другому циклу foreach и продолжайте до тех пор, пока последние элементы в обоих массивах не будут.
@list = (10, 20, 30, 40, 50);
@list1 = (15, 25, 35, 45, 55);
OUTER:foreach $a (@list) {
print "value of a: $a\n";
foreach $b (@list1) {
print "value of b: $b\n";
next OUTER;
}
}
Возвращает то же значение из второго цикла foreach.
value of a: 10
value of b: 15
value of a: 20
value of b: 15
value of a: 30
value of b: 15
value of a: 40
value of b: 15
value of a: 50
value of b: 15
Требуемый вывод долженбыть следующим:
value of a: 10
value of b: 15
value of a: 20
value of b: 25
value of a: 30
value of b: 35
value of a: 40
value of b: 45
value of a: 50
value of b: 55
Есть ли способ поочередно печатать значения из обоих массивов?Любые операторы управления циклом могут сделать это?
Я просто проверяю эту логику, потому что собираюсь использовать ее в моем сценарии.Где я буду открывать пару файлов из циклов foreach и обрабатывать их (по одному файлу в цикле).Файлы, которые я буду открывать с помощью циклов foreach, находятся в отдельных каталогах и находятся в пуле из нескольких похожих файлов.Я буду зацикливать свой код, чтобы открыть все из них, используя вложенную логику foreach.
Сценарий будет выглядеть примерно так:
$dir1 = "/tmp/*";
$dir2 = "/home/*";
@files1 = glob( $dir1 );
@files2 = glob( $dir2 );
foreach (@files1) {
.
.
.
foreach (@files2){
.
.
.
}
}