OK、序文として、この質問は私の通常レベルの質問よりも潜在的に「愚かです」 - この問題は最後の数日間私を迷惑にしていましたので、とにかく尋ねます。私は私の問題が何であるかを模擬的に説明しますので、現在の問題に一般化することができます。これが実行されたときPerl、文字列、浮動小数点、ユニットテストと正規表現!
#!/usr/bin/perl -w use strict;
use Test::More 'no_plan';
my $fruit_string = 'Apples cost $1.50';
my ($fruit, $price) = $fruit_string =~ /(\w+)s cost \$(\d+\.\d+)/;
# $price += 0; # Uncomment for Great Success
is ($price, 1.50, 'Great Success');
は今、私はメッセージ
# Failed test 'Great Success'
# got: '1.50'
# expected: '1.5'
は、テスト作業を行うために取得する - 私はどちらかのコメント行のコメントを解除、またはis ($price, '1.50', 'Great Success')
を使用しています。どちらのオプションも私のためには機能しません。Test :: Deepとcmp_deeplyを使って膨大な量のネストされたデータをテストしています。私の質問は、どのように正規表現から二重を抽出し、二重としてすぐに使うことができるのか、あるいはもっと良い方法があれば教えてください。ハード。数として解釈される
文字列と数値を比較するので、文字列として比較されます。私はあなたがそれで何かをすることができるとは思わない。 –