use warnings; use strict; my @k = (1,2,3); my $self = \@k; # an ARRAY reference my $ret = foo($self, 'key'); print "$ret\n"; sub foo { my ($self, $key) = @_; (exists $self->{$key}) ? return $self->{$key} : return 0; }