1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
#! /usr/bin/env perl use strict; use warnings; use 5.010; my @array1 = ( 1, 1, 1, 1, ); my @array2 = ( 2, 2, undef, 0, ); for( my $i=0;$i<@array2; $i++ ) { next if !defined $array2[$i] || 0 == length($array2[$i]); $array1[$i] = $array2[$i] if $array1[$i] < $array2[$i]; } say $_ for @array1; __END__
2020-05-27T10:19:18 LinuxerHallo Gast,
Der zu betrachtende Index ist immer identisch? Es geht immer um die gleiche Position in array1 und array2?
D.h. wenn array2 10 Einträge enthält, werden die ersten 10 Einträge des array1 ersetzt?
Wenn array2 nur 1 enthält, wird nur der erste Eintrag im array1 ersetzt?
Gedanke:
Was soll passieren, sollte array2 doch einmal mehr Einträge als array1 haben?
# Schnellschuss:
Code (perl): (dl )1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31#! /usr/bin/env perl use strict; use warnings; use 5.010; my @array1 = qw( 1 1 1 0 ); my @array2 = qw( 2 2 2 2 ); $array2[-2]= undef; for( my $i=0;$i<@array2; $i++ ) { next if !defined $array2[$i] || 0 == length($array2[$i]); $array1[$i] = $array2[$i] if $array1[$i] < $array2[$i]; } say $_ for @array1; __END__