Por que o operador de correspondência inteligente do Perl 5 é considerado quebrado? [fechadas]

16

Eu vi vários comentários em toda a web correspondência inteligente de Perl operador está quebrado . Eu sei que originalmente fazia parte do Perl 6, então foi implementado em Perl 5.10 fora de uma versão antiga da especificação, e foi então corrigido em 5.10.1 para corresponder à especificação Perl 6 atual.

O problema está corrigido em 5.10.1+, ou existem outros problemas com o operador de correspondência inteligente que o tornam problemático na prática?

Quais são os problemas?

Existe uma versão ainda mais atualizada (Perl 6, talvez) que corrige os problemas?

Editar: Para esclarecer, não estou perguntando sobre bugs, mas sim a opinião de que o comportamento pretendido de ~~ é ruim.

    
por Sean McMillan 28.11.2011 / 23:25
fonte

2 respostas

14

As pessoas costumam confundir os problemas que surgem com o operador de smartmatch com aqueles que surgem com a construção given/when , como o problema do% léxico$_.

Eu cheguei à opinião de que, se você usar o operador de smartmatch apenas em literais, você não ficará louco. Eu não posso fazer promessas sobre qualquer outra situação. Tentar descobrir o que o $a ~~ $b está fazendo é o suficiente para levar qualquer ser humano decente a correr gritando loucamente e a usar outra linguagem de programação.

Ou, pelo menos, essa é a opinião que recebi de Larry quando ele editava a seção de correspondência inteligente da 4ª edição do Programação Perl .

    
por 19.02.2012 / 16:44
fonte
4

O operador de correspondência inteligente não estava "quebrado" , mas tinha muitos bugs. Perl v5.12 corrigido isso, e Perl v5.14 aperfeiçoou IMHO. Então, para responder a sua pergunta, o Perl v5.12 corrige este problema. Você pode tentar com versões posteriores do Perl v5.10, mas eu sei que funciona melhor em Perl 5.12 +.

Editar: para responder à sua edição, consulte este blog . Depois de ler o artigo, acredito que ele respondeu de forma suficiente à sua pergunta.

    
por 29.11.2011 / 12:29
fonte

Tags