2011-03-10 2 views
1

誰かが私を説明することができますか、どのようにstrtodが働いていますか?なぜ私はここに10,2en_EN -localeにもかかわらずですか?POSIX:strtod - 質問

#!/usr/bin/env perl 
use warnings; 
use 5.012; 
use POSIX qw(locale_h strtod); 

setlocale(LC_NUMERIC, 'en_EN.UTF-8'); 

my $str = '5,6'; 

$! = 0; 
my ($num, $n_unparsed) = strtod($str); 

if ($str eq '' or $n_unparsed != 0 or $!) { 
    die "Non-numeric input $str" . $! ? ": $!\n" : "\n"; 
} 

say $num + 4.6; 

# 10,2 

答えて

3

あなたのISO 3166識別子が間違っています。試してくださいUS