Skip to content
Create a gist now

Instantly share code, notes, and snippets.

Embed URL


Subversion checkout URL

You can clone with
Download ZIP
A bit of code to demonstrate how the ambiguity between auto-deferencing hashrefs and arrayrefs can be caught.
#! /usr/bin/env perl
# a standard prefix for modern Perl
use 5.014; # implies both `use strict` and `use feature :5.14`
use autodie qw< :all >;
use warnings FATAL => 'all';
my $arrayref = [ qw< foo bar baz bmoogle > ];
my $hashref = { map { $_ => 1 } @$arrayref };
say 'hash: ', join(', ', keys $hashref); # works fine
say 'array: ', join(', ', keys $arrayref); # also works fine
my $corresponding_arrayref = $hashref; # oops!
foreach (keys $corresponding_arrayref)
say $arrayref->[$_]; # kaboom!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.