#! perl -slw use strict; $a=$b='unused'; sub uniq { print "unique($a,$b):",@_; 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; ## uniq is used a comparator here print sort uniq @array; __DATA__ unique(unused,unused):ABCDEFGHIJKLMNOPQRSTUVWXYZZYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYZ unique(A,B): unique(C,D): unique(E,F): unique(K,J): unique(I,H): unique(G,F): unique(E,D): unique(C,B): ABCDEFGHIJKLMNOPQRSTUVWXYZZYXWVUTSRQPONMLKJIHGFEDCBA #### #! 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