私はタブ区切りファイルを解析しています。いくつかの列は、明らかに数字であるにもかかわらず、数字として認識されていません。これらの値を合計しようとすると、エラーが表示されます。とPerlは0を返します。文字列を数値に変換しています "引数は数値エラーではありません"
私はScalar::Util qw(looks_like_number);
を使用しようとしましたが、同じ結果が「0」でした。私が試すことができる何か他にありますか?
がここにコードされています(また)、余分な引用符を処理するText::CSV
を使用する
open my $out_fh, '>', $final_variants or die qq{Unable to open "$final_variants" for output: $!};
open my $in_fh, '<', $tsv_file_new
or die qq{Unable to open "$tsv_file_new" for input: $!};
while (<$in_fh>) {
my @fields = split;
my $forward_reference = $fields[67];
my $reverse_reference = $fields[68];
my $forward_variant_reads = $fields[77];
my $reverse_variant_reads = $fields[78];
my $total_reads = (looks_like_number($forward_reference))
+ (looks_like_number($reverse_reference))
+ (looks_like_number($forward_variant_reads))
+ (looks_like_number($reverse_variant_reads));
my $current_final_line = $headerline . "\t"
. $forward_reference . "\t"
. $reverse_reference . "\t"
. $forward_variant_reads . "\t"
. $reverse_variant_reads . "\t"
. $total_reads . "\t";
print $out_fh $current_final_line, "\n";
}
は ' "97"' '確か97'とは異なり、多数のようにしていません。あなたのフィールドに引用符があるように聞こえます。 – melpomene