#! /usr/bin/perl use strict; use warnings; my %hash = (); while(my $line = ){  chomp $line;  my @array = split(/\s+/,$line);  $hash{$array[1]} = [@array[2,3,4,0,6,5]]; } my @sorted_keys = sort{change_time($hash{$a}->[3],$hash{$a}->[4]) <=>                         change_time($hash{$b}->[3],$hash{$b}->[4])}keys %hash; print "\nFlugnummer\tDatum     \tUhrzeit\t", sprintf("%15s",'Zielort'),"\t",sprintf("%15s",'Abflugort'), "\tTerminal\tAnkunft\n"; foreach(@sorted_keys){  print sprintf("%10s",$_),"\t",        sprintf("%10s",$hash{$_}->[3]),"\t",        sprintf("%7s",$hash{$_}->[4]),"\t",        sprintf("%15s",$hash{$_}->[0]),"\t",        sprintf("%15s",$hash{$_}->[1]),"\t",        sprintf("%9s",$hash{$_}->[2]),"\t",        sprintf("%7s",$hash{$_}->[5]),"\n"; } sub change_time{  my($date,$clock) = @_;  $clock =~ s/\://;  return join("",reverse split(/\./,$date)).$clock; } # hier Leerzeichen weglassen _ _DATA_ _ 30.07.2004 123456 Malaga Bielefeld C 12:15 11:31 23.07.2004 654321 Berlin Bielefeld D 13:00 12:58 04.07.2004 587931 Barcelona Bielefeld E 14:00 12:00 30.07.2004 356987 Muenchen Bielefeld A 12:50 12:00 30.07.2004 879652 Koeln Bielefeld B 12:55 12:15 30.07.2004 456987 Bonn Bielfeld H 14:00 11:55 05.08.2004 456789 Freiburg Bielfeld C 15:00 13:00 01.09.2004 336632 Berlin Bielefeld B 22:00 19:00