in reply to scalar number with preceding 0.

There is a simpler way:

sub format_time { my ($h, $m, $s) = @_; return sprintf "%02d%02d%02d", $h, $m, $s; }