I am trying to check if a hash key exists, for example:
use warnings;
use strict;
use feature qw(say);
use Data::Dump qw(dump);
my $h={a=>1,b=>2};
dump($h);
if (exists $h->{a}{b}) {
say "Key exists.";
}
dump($h);
This gives:
{ a => 1, b => 2 }
Can't use string ("1") as a HASH ref while "strict refs" in use at ./p.pl line 12.
What is the reason for this error message?
$h->{a}{b}
implies that value of $h->{a}
is hashref, and you want to check if key b
for it exists.
Since $h->{a}
is simple scalar (1
) it can not be used as hashref (use strict
prevents it), and thus message Can't use string (“1”) as a HASH ref
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With