저는 학생 프로그래밍 과제 수정을 위해 Perl에 스트레스 시스템을 구축하고 있습니다. 나는 그 길을 따라 나를 돕기로되어있는 함수 check(<boolean>,<congrats-message>,<blame-message>)
을 만들었다.펄 함수 인수가 사라집니다. 왜?
나는
check(get_option('content-type') eq "text/html","good type", "bad type");
모든 것이 괜찮로 호출 할 때. 하지만 내가 할 수 있다면
check(get_option('content-type') =~ m:text/html:i, "good type", "bad type");
정규 표현식이 일치 항목을 찾지 못하면 깨집니다. 실제로는 check("good type", "bad type")
과 같습니다. check() 함수에서 $_[0]
, $_[1]
등만 사용하고, 첫 번째 인수로 'undef'가있는 것과 같지 않습니다. die unless $#_ == 2
으로 버그를 잡을 수 있습니다.
무슨 일입니까? 나는
check((get_option('content-type') =~ m:text/html:i && 1), "good type", "bad type");
그것을 해결할 그러나 나는 무엇을 왜 이상한 상황을 이해하고 싶네요.
-
sub check {
if ($_[0]) {
$okay++;
print STDERR "^_^ $_[1] ($okay)\n";
} else {
print STDERR ">_< $_[2]\n";
}
return $_[0];
}
그래서 "... && 1"대신 "스칼라 (...)"를 사용할 수있었습니다. 맞습니까? – PypeBros
할 수 있어야합니다. – Quentin
"목록을 다른 목록에 넣으면 병합됩니다." 아, 좋은 알림. 그렇기 때문에 LoL을 얻으려면 몇 가지 추가 트릭이 필요합니다. – PypeBros