2
나는 어떤 이유에서이 스크립트를 가지고 항상 -1
을 반환합니다. 내가 원하는 무엇. 내가 도대체 뭘 잘못하고있는 겁니까?
#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests => 4;
is(scrub(''), '-1');
is(scrub('~'), '-1');
is(scrub('undef'), '-1');
is(scrub('a'), 'a');
sub scrub {
my $a = shift;
if ($a =~ m/~|undef|/) {
return -1;
}
return $a;
}
~
또는 펄의 undef
또는 빈 문자열``인수로 제공하는 경우에만 -1
을 반환한다는 것입니다.
누구든지 잘못된 것을 볼 수 있습니까?
업데이트 : 답글을 기반으로이 솔기가 올바른 방법입니다.
sub scrub {
my $a = shift;
return ($a =~ m/^(~|undef|^$)$/) ? -1 : $a;
}
/undef/정의되지 않은 값이 아닌 "u", "n", "d", "e", "f"문자열을 검사합니다. 테스트는'is (script (undef), -1); – ikegami