4
什麼是最優雅的方式來解析科學表示給出一個整數,即我有線條狀解析在Perl科學整數表示
value=1.04738e+06
輸入文件當然,我可以匹配所有組件(領先數字,小數位,指數)並計算結果,但在我看來,有一種更直接的方法。
什麼是最優雅的方式來解析科學表示給出一個整數,即我有線條狀解析在Perl科學整數表示
value=1.04738e+06
輸入文件當然,我可以匹配所有組件(領先數字,小數位,指數)並計算結果,但在我看來,有一種更直接的方法。
% perl -e 'print "1.04738e+06" + 0'
1047380
你只需要強制它一個數字,Perl會DWIM。
供參考:looks_like_number()
從Scalar::Util
可能會派上用場。
#!/usr/bin/env perl
use strict;
use warnings;
use Scalar::Util qw(looks_like_number);
my $line = "value=1.04738e+06";
my ($tag, $value) = split /\s*=\s*/, $line, 2;
if(looks_like_number($value)){
$value = 0 + $value;
}
print "$tag=$value\n";