my %foo; my %bar = ( 1, 2 ); if( $foo{1} = $bar{1} ){ warn "assignment is assignment"; } if( $foo{1} = 'any true value' ){ warn "assign any true value, expression is true"; } warn "foo eq bar ", int ( $foo{1} eq $bar{1} ); __END__ assignment is assignment at - line 5. assign any true value, expression is true at - line 9. foo eq bar 0 at - line 11.