#!/usr/bin/perl use warnings; use strict; use Test::More tests => 1; my $ranksUsed = [ [ 1 ], [ 2 ] ]; sub original { my @ranksUsed; for (@$ranksUsed) { push @ranksUsed, $_->[0]; } my %ranksUsed = map {$_ => undef} @ranksUsed; return \%ranksUsed } sub slice { my %ranksUsed; undef @ranksUsed{ map @$_, @$ranksUsed }; return \%ranksUsed } is_deeply(original(), slice(), 'same');