Frank Schönmann: Daten aus einem array korrigieren

Beitrag lesen

hi!

Ich habe ein Array mit folgendem Inhalt:

Name1&1000&10&1.0
Name2&2000&20&1.0
Name3&1500&15&1.3
Name4&5000&10&1.4
Name5&2300&12&1.4
.
Jetzt möchte ich, dass die Zahlen des zweiten Elementes addiert werden, wenn das vierte Element
gleich ist und in einem neuen Array eingelesen werden.

Man verwende ein Hash und das vierte Element als Schlüssel.

=== cut ===
my %hash;
for (@array)
{
  my (undef, $value, undef, $key) = split /&/;
  $hash{$key} += $value;
}
=== cut ===

Um aus dem Hash eine Liste zu machen:

=== cut ===
for (keys %hash)
{
  push @newarray, "$hash{$_}&$_"
}
=== cut ===

bye, Frank!