http://www.perlmonks.org?node_id=594377

ftumsh has asked for the wisdom of the Perl Monks concerning the following question:

Lo, Given that:
$self->client->param( 'usr_id' ) returns 1 $self->client->param( 'edit_usr_id' ) returns undef, or something $self->client->param( 'mode' ) returns 'add'
How come the below really screws up the hash:
$self->log(LOGDEBUG, 'EDIT_USER: '. Dumper( { state => 'db_user', usr_id => $self->client->param( 'usr_id' ), edit_usr_id => $self->client->param( 'edit_usr_id' ), mode => $self->client->param( 'mode' ) })); EDIT_USER: $VAR1 = { 'add' => undef, 'usr_id' => '1', 'edit_usr_id' => 'mode', 'state' => 'db_user' };
And yet doing it this way is as expected:
my $a = $self->client->param( 'edit_usr_id' ); $self->log(LOGDEBUG, 'EDIT_USER: '. Dumper( { state => 'db_user', usr_id => $self->client->param( 'usr_id' ), edit_usr_id => $a, mode => $self->client->param( 'mode' ) })); EDIT_USER: $VAR1 = { 'usr_id' => '1', 'mode' => 'add', 'edit_usr_id' => undef, 'state' => 'db_user' };