Perché l'operatore smart-match di Perl 5 è considerato danneggiato? [chiuso]

16

Ho visto una serie di commenti sul web lo smart-match di Perl l'operatore è guasto . So che originariamente faceva parte di Perl 6, poi è stato implementato in Perl 5.10 su una vecchia versione delle specifiche, e poi è stato corretto in 5.10.1 per corrispondere alle attuali specifiche Perl 6.

Il problema è stato risolto in 5.10.1+ o ci sono altri problemi con l'operatore smart-match che lo rendono problematico nella pratica?

Quali sono i problemi?

Esiste una versione ancora più aggiornata (Perl 6, forse) che risolve i problemi?

Modifica: per chiarire, non sto chiedendo bug, ma piuttosto l'opinione che il comportamento previsto di ~~ sia negativo.

    
posta Sean McMillan 28.11.2011 - 23:25
fonte

2 risposte

14

Le persone spesso confondono i problemi che sorgono con l'operatore smartmatch con quelli che si presentano con il costrutto given/when , come il problema di lessical $_ .

Sono giunto alla conclusione che se usi l'operatore smartmatch solo su letterali, non impazzisci. Non posso fare promesse su nessuna altra situazione. Cercare di capire che cosa fa $a ~~ $b è abbastanza per spingere qualsiasi essere umano decente a scappare urlando nella follia e riprendere completamente un altro linguaggio di programmazione.

O almeno, questo è il risultato che ho ricevuto da Larry quando stava modificando la sezione smartmatch della 4a edizione di Programming Perl .

    
risposta data 19.02.2012 - 16:44
fonte
4

L'operatore smart match non era "broken" , ma aveva molti bug. Perl v5.12 lo ha risolto, e Perl v5.14 lo ha perfezionato. Quindi, per rispondere alla tua domanda, Perl v5.12 e sopra risolve questo problema. Puoi provarlo con versioni successive di Perl v5.10, ma so che funziona meglio in Perl 5.12 +.

Modifica: per rispondere alla tua modifica, vedi questo blog . Dopo aver letto l'articolo, credo che abbia sufficientemente risposto alla tua domanda.

    
risposta data 29.11.2011 - 12:29
fonte

Leggi altre domande sui tag