#!/usr/bin/env perl use strict; use warnings; use Benchmark 'cmpthese'; my %big_hash = map { $_ => 1 } 1 .. 1_000; sub _get_original_hash { return %big_hash } sub _get_ref_to_hash { return \%big_hash } sub _get_anon_hashref { return { %big_hash } } cmpthese 0 => { orig => sub { my %hash = _get_original_hash() }, ref => sub { my $ref = _get_ref_to_hash() }, anon => sub { my $anon = _get_anon_hashref() }, };