좋아요, 서문으로이 질문은 내 정상적인 질문 수준보다 '어리 석음'입니다. 그러나이 문제는 지난 며칠 동안 나를 성가 시게 했으므로 어쨌든 물어볼 것입니다. 내 문제가 무엇인지에 대한 모의 예를 드리겠습니다. 그래서 현재 문제에 대한 일반화를 기대할 수 있습니다. 내가 하나가 주석 행의 주석을 해제 또는 is ($price, '1.50', 'Great Success')
을 사용 -이 실행되는 지금펄, 문자열, 수레, 단위 테스트 및 정규식!
#!/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'
테스트 작업을하려면 메시지가 표시됩니다. 두 가지 옵션이 모두 작동하지 않습니다. Test :: Deep 및 cmp_deeply를 사용하여 방대한 양의 중첩 데이터를 테스트하고 있습니다. 제 질문은 어떻게 정규 표현식에서 double을 추출한 다음 즉시 double으로 사용 할 수 있습니까? 아니면 더 좋은 방법이 있다는 것을 알려주는 것이지요. 그리고 Perl을 배우면서 gardening이나 lol을 가져 가라고 말해도됩니다. 단단한.
문자열을 숫자와 비교하므로 문자열로 비교됩니다. 나는 네가 그걸 가지고 무엇이든 할 수 있다고 생각하지 않는다. –