our $rcListHash = sub { my %seen = (); my @uniq = (); foreach my $item (@data) { push @uniq, $item unless $seen{$item} ++; } print OUTPUT @uniq; # Instead of return @uniq; }; #### #!/usr/bin/perl use strict; use warnings; my %saw; while (<>) { print if !$saw{$_}++; } __END__ #### perl -ne 'print if !$saw{$_}++' #### perl -pe'$_ x=!$$_++' #### sub uniq { my %saw; grep !$saw{$_}++, @_; } #### sub uniq { my ($out, %saw)=shift; print $out grep !$saw{$_}++, @_; } #### { my %saw; sub { grep !$saw{$_}++, @_ } } #### #!/usr/bin/perl -l use strict; use warnings; package Uniq; sub new { bless my $self={}, shift } sub check { my $self=shift; grep !$self->{$_}++, @_; } package main; my $u=Uniq->new; my $u2=Uniq->new; print for $u->check(qw/foo bar baz/); print for $u->check(qw/foo barr baz/); print "--"; print for $u2->check(qw/foo barr baz/); __END__