In the doc: param_value If the value is invalid or the form was not submitted, it returns undef. But in the source code: sub param_value { # ignore $form->valid($name) and $form->submitted So, which one is expected?