use strict; use warnings; use Data::Dump qw(pp); use feature qw(say); my @points = map { pp($_) } ( [ 0, 0 ], [ -1, -2 ], [ 1, 2 ], [ -1, 2 ], [ 1, -2 ], [ 0, 1 ], [ 1, 0 ], [ -1, 0 ], [ 0, -1 ], [ 2147483647, 2147483647 ], [ 2147483647, -2147483647 ], [ -2147483647, 2147483647 ], [ -2147483647, -2147483647 ], ); kgb_str_look( kgb_str_hash() ); sub kgb_str_hash { my %cells = map { $_ => undef } @points; \%cells; } sub kgb_str_look { my $cells = shift; for (@points) { ( exists $cells->{$_} ) ? say $_ : die; } }