#!/usr/bin/perl use strict; use warnings; my @array=(); my $pos=tell(DATA); while(my $line=) { my ($time)=$line=~/^(\d+)/; push(@array,[$time,$pos]); $pos=tell(DATA); } for my $p (sort{$a->[0] <=> $b->[0]}@array) { seek(DATA,$p->[1],0); my $line=; ### AUSGABE ### print $line; } __DATA__ 0001 Ein Eintrag 0002 Noch ein Eintrag 0008 Ein weiterer Eintrag 0003 Und alles auch noch durcheinander 0008 Und aufgrund der geringen Auflösung auch noch gleiche timestamps 0010 Und es geht immer so weiter...