Perl 5의 스마트 매치 운영자가 고장난 이유는 무엇입니까? [닫은]


17

웹에서 여러 가지 의견을 보았습니다. Perl의 스마트 일치 연산자가 손상되었습니다 . 나는 그것이 원래 Perl 6의 일부라는 것을 알고, 이전 버전의 사양에서 Perl 5.10으로 구현 된 다음 5.10.1에서 현재 Perl 6 사양과 일치하도록 수정되었습니다.

5.10.1 이상에서 문제가 해결 되었습니까, 아니면 스마트 매치 연산자에 실제로 문제가되는 다른 문제가 있습니까?

무엇이 문제입니까?

문제를 해결하는 아직 업데이트 된 버전 (Perl 6)이 있습니까?

편집 : 명확히하기 위해 버그에 대해 묻는 것이 아니라 의도 된 동작 ~~이 나쁘다 는 의견입니다 .


SO에서 더 나쁘지 않습니까?

3
요즘 코드 스 니펫으로 대답 할 수없는 질문을 싫어하는 것 같습니다.
Sean McMillan

2
나는 그것이 SO에 속한다고 생각하지 않으며, Perl의 스마트 매치 연산자가 왜 고장으로 간주되는지에 대한 개념적 설명을 요구합니다.
yannis

1
내가 당신의 링크에서 볼 수 있듯이, 스마트 일치는 재귀 적 인 것처럼 보이므로 배열에 (직접적으로) 자체에 대한 참조가 포함되어 있기 때문에 무한 재귀로 이어질 수 있습니다.
user281377

2
@SeanMcMillan-SO 요즘 많은 것들을 싫어합니다 : /
Rook

답변:


14

사람들은 종종 스마트 매치 연산자에서 발생 given/when하는 문제와 어휘 문제와 같은 구문에서 발생하는 문제를 혼동합니다 $_.

스마트 매치 연산자를 리터럴에만 사용하면 미쳐 버리지 않을 것이라고 생각합니다. 다른 상황에 대해서는 약속 할 수 없습니다. 무슨 $a ~~ $b일 을하는지 알아 내려고 노력 하는 것은 괜찮은 인간이 미치게 비명을 지르고 다른 프로그래밍 언어를 완전히 채택하기에 충분합니다.

또는 적어도 Larry가 Programming Perl 제 4 판의 smartmatch 섹션을 편집 할 때 얻은 것 입니다.


4

스마트 매치 연산자는 "깨지지" 않았지만 많은 버그가있었습니다. Perl v5.12가이를 수정했으며 Perl v5.14가이를 IMHO로 완성했습니다. 따라서 귀하의 질문에 대답하기 위해 Perl v5.12 이상은이 문제를 해결합니다. 이후 버전의 Perl v5.10으로 시도해 볼 수 있지만 Perl 5.12 이상에서 더 잘 작동한다는 것을 알고 있습니다.

편집 : 편집에 응답하려면 이 블로그를 참조하십시오 . 기사를 읽은 후에는 귀하의 질문에 충분히 대답했다고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.