Thread 2 Arrays vergleichen und Inhalte ersetzen wenn unterschiedlich (4 answers)
Opened by Gast at 2020-05-27 11:54

Gast Gast
 2020-05-27 12:46
#191859 #191859
2020-05-27T10:19:18 Linuxer
Hallo 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__


Danke für die schnelle Antwort. Ich kann erst heute Abend testen.

In array1 sollen alle ersten 10 oder 2 oder 3 (jenachdem wieviele daten in array2 drin stehen) ersetzt werden und wenn nichts in array2 steht, dann soll auch nichts ersetzt werden.
Die Unixzeiten in array2 sind immer >= als in array1.
In array2 soll nichts weiter passieren. ist nur zum lesen.
Bin noch Anfänger in Perl..;-)
Last edited: 2020-05-27 12:57:30 +0200 (CEST)

View full thread 2 Arrays vergleichen und Inhalte ersetzen wenn unterschiedlich