sub mydump($) { print Data::Dumper->Dump( [ $_[0] ], ['*hash'] ); } sub myjoin($@) { return join @_; } my %hash; my $s1 = join( ':', @hash{qw(key)} ); # line no. 12 mydump( \%hash ); my $s2 = myjoin( ':', @hash{qw(key)} ); mydump( \%hash ); #### $ perl -w ./hashslices.pl Use of uninitialized value within %hash in join or string at ./hashslices.pl line 12. %hash = (); %hash = ( 'key' => undef );