in reply to single line if conditional

DB<1> sub param { return "zorch" } DB<2> $name = param( "name" ) DB<3> $hash{ "name" } = "this and that" if $name ne ""; DB<4> p $hash{ "name" } this and that

Works fine. Something Else Is Wrong. perldoc perldebug, make sure that what values you think things have are what you think they are.