#! perl -slw use strict; sub uniq { my %x; @x{@_} = (); keys %x } my @array = ( 'A' .. 'Z', reverse 'A' .. 'Z' ); ## Explicit sort block works as expected print sort { $a cmp $b } uniq @array; ## must use &sub(@args); here or uniq is used as a comparator. print sort &uniq(@array); __DATA__ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ