use strict; use warnings; my @zeilen=(); my $input_file='/tmp/testdat.txt'; open (my $fileh, '<', $input_file) or die "Fehler bei open($input_file) : $!"; while(<$fileh>) { chomp($_ ); print "$_ \n"; push @zeilen, [ split /;/, $_, 4 ]; } close ($fileh); my $first_line=shift(@zeilen); @zeilen=sort{$a->[2] <=> $b->[2]}@zeilen; # wenn es Text ist statt "<=>" "cmp" benutzen. unsift(@zeilen, $first_line);