#!/usr/bin/perl use strict; use warnings; # die Daten my @PTage=qw(1264633200 1264719600 1264633200 1264719600); my @WErt=qw(2 2 3 3); my @Titel=qw(A A B B); # reorganisieren: my %liste=(); # alle Werte durch gehen for my $pos (0..$#PTage) { my $titel=$Titel[$pos]; my $wert=$WErt[$pos]; my $ptage=$PTage[$pos]; # wenn der eintrag im Hash noch nicht existiert, # dann anlegen unless(exists($liste{$titel})) { # als Wert wird ein anonymer Hash eingefügt, # der die nötigen Einträge enthält $liste{$titel}={werte=>[], ptage=>[]} } # die Werte hinzufügen push(@{$liste{$titel}->{werte}},$wert); push(@{$liste{$titel}->{ptage}},$ptage); } render_daten(%liste); ######################################################################## sub render_daten { my %liste=@_; # die Schlüssel (Titel) sortieren # und einzeln durch gehen for my $titel (sort keys(%liste)) { my @werte=@{$liste{$titel}->{werte}}; my @ptage=@{$liste{$titel}->{ptage}}; # mach was mit den Werten: printf("%s: %s %s\n",$titel, join(' ',@ptage), join(', ',@werte)); } }