use Array::Parallel; @your_ratings = (10, 4, 6, 3); @url = ('url', 'url2', 'url3', 'url4'); $array = Array::Parallel->new(\@your_ratings, \@url); ($your_ratings, $url) = $array->sort('num'); for my $num ( (0 .. $#{@{your_ratings}} ) ) { print "$url->[$num] has got $your_ratings->[$num] hits\n"; }