#!perl -T ## no critic (TidyCode)
use strict;
use warnings;
our $VERSION = 0;
require Locale::Utils::PlaceholderNamed;
my $numeric_code = sub {
my $value = shift;
defined $value
or return $value;
# set the , between 3 digits
while ( $value =~ s{(\d+) (\d{3})}{$1,$2}xms ) {}
# German number format
$value =~ tr{.,}{,.};
return $value;
};
my $obj = Locale::Utils::PlaceholderNamed->new(
modifier_code => sub {
my ($value, $attribute) = @_;
if ( $attribute eq 'num' ) {
return $numeric_code->($value);
}
return $value;
},
);
for my $value (undef, 0 .. 2, '345678.90', 45_678.90) { ## no critic (MagicNumbers)
() = print
$obj->expand_named(
'{count :num} EUR',
count => $value,
),
"\n";
}
# $Id: 02_modifier_code.pl 474 2014-01-24 11:51:14Z steffenw $
__END__
Output:
# $Id: 02_modifier_code.pl 474 2014-01-24 11:51:14Z steffenw $
__END__
Output:
EUR
0 EUR
1 EUR
2 EUR
345.678,90 EUR
45.678,9 EUR