sub format_number { die 'Usage:format_number(, )!' unless scalar(@_) == 2; my ($num, $format) = @_; my @form = split('', $format); @form = reverse @form; my @num = split('', $num); my ($symbol, @res); foreach(@form) { if(/^([Xx]|#)$/) { unless($symbol = pop @num) { $symbol = 0; } } else { $symbol = $_; } unshift @res, $symbol } return join('', @res); }