foreach(sort { (split /\|/, $b)[0] <=> (split /\|/, $a)[0] } @read) { my($time,$nick,$subject,$text) = split /\|/, $_; $time = getDate($time); $subject =~ s/.../.../g; push(@newarray, "$time|$nick|$subject|$text|"); }