#!/usr/bin/perl use strict; use warnings; my @list = qw (a a b b c c d d); print "\nAssigning list:\n"; for my $i (0 .. 1) { my @unique = ($i)? removeDuplicates (@list): &removeDuplicates (@list); my $ampersand = ($i)? "": "&"; print $ampersand, $_, "\n" for (sort @unique); print "=\n"; } print "\nUsing in for loop:\n"; for my $i (0 .. 1) { if ($i) { for my $character (sort removeDuplicates (@list)) { print $character, "\n"; } } else { for my $character (sort &removeDuplicates (@list)) { print "&", $character, "\n"; } } print "=\n"; } sub removeDuplicates { my %hash; @hash{@_} = 1; return keys %hash; }