in reply to Re^2: Hashes and keys...
in thread Hashes and keys...

Yeah, thanks -- that was a typo -- i updated it. I guess it doesn't have to be a hasref .. mostly out of habit.
I know that my $value = $params->{value}; does the same thing, but the point was to illustrate to OP that you can use exists $params->{value} to see if the parameter was provided or not. Consider a required param:
sub foo { my $obj = shift; my $p = { @_ }; my $value = exists $p->{value} ? $p->{value} : die "must give 'value +', even if undef or ''"; if( exists $p->{optional_but_possibly_blank_key} ){ ... }
Basically, depending on your data/requirements, if( $p->{value}) and if(exists $p->{value}) are not the same.