in reply to Re: Getting values from a Hash from user input
in thread Getting values from a Hash from user input

The defined-or operator is just //. $lvalue //= "value"; actually means $lvalue = "value" unless defined $lvalue;. This means that you actually write "Key '$inData' doesn't exist.\n" in the hash :

use Data::Dumper; my %words = ( 'hello' => 'world' ); print 'type a word: '; chomp( my $inData = <> ); print $words{$inData} //= "Key '$inData' doesn't exist.\n"; print Dumper \%words;
type a word: Bonjour Key 'Bonjour' doesn't exist. $VAR1 = { 'hello' => 'world', 'Bonjour' => 'Key \'Bonjour\' doesn\'t exist. ' };
You meant print $words{$inData} // "Key '$inData' doesn't exist.\n"; which works fine as long as undef isn't a valid value.

Replies are listed 'Best First'.
Re^3: Getting values from a Hash from user input
by Kenosis (Priest) on Nov 21, 2013 at 21:36 UTC

    Thanks for this catch! Corrected...

      Thanks for help guys