普通は sprintf("%04d", #num); なり sprintf("%04s, $num )なり使うんじゃないの?