#!/usr/bin/perl -wl use strict; my @array = (2, 3, 4, 5, 1, 7, 11, 8, 9, 6, 10, "End" ); my %skip = (3 => 1, 6 => 1); my @new = sort {exists $skip{$a} <=> exists $skip{$b}} @array; print "@new"; __END__ $ perl5.8.0 sort_end2.pl 2 4 5 1 7 11 8 9 10 End 3 6 $ perl5.6.0 sort_end2.pl 2 End 4 5 1 7 11 8 9 10 3 6