"괄호"구문을 사용하여 코드 블록을 하위 코드로 전달할 수 있습니까?Perl - 괄호 안의 매개 변수로 코드 블록
e.e. 내가 쓸 때
List::MoreUtils::any { defined ($_) } (undef, undef, 1);
그것은 작동합니다. 그러나 괄호를 추가하려고 시도하면
List::MoreUtils::any ({ defined ($_) } , (undef, undef, 1));
이 표시되며 익명 해시로 해석되어 오류 메시지가 표시됩니다. 탈출하거나 eval을 사용하는 것도 도움이되지 않습니다. 호출이 인수를 다음 즉
if (first_index { defined (${$_})} $jms_positions > $jms_positionals_seen)
일부 작업자가 원하지 않는 결과를 생성, 호출하기 전에 실행 될 수있다, 표현의 일부인 경우
모든 소란 뒤에 아이디어이다.
어떻게 든 작동합니다. 나는'sub '가 블럭 안의 return 문을 호출 원에게 아무것도 요구하지 않는다고 생각했다. 놀랍게도, 그렇지 않습니다! Perl의 구문은 실제로 내가 본 것 중 가장 이상한 구문입니다. –
'sub {42}; 'returns 42. – Dallaylaen
=> 괄호는 프로토 타입을 끄지 않습니다. 그것을 위해서'''sigil이 필요합니다. 이 경우 괄호는 perl의 파서를 혼동합니다. –