Saya telah melihat sejumlah komentar di seluruh operator pertandingan pintar web Perl rusak . Saya tahu ini awalnya adalah bagian dari Perl 6, kemudian diimplementasikan di Perl 5.10 dari versi lama spec, dan kemudian diperbaiki di 5.10.1 agar sesuai dengan spesifikasi Perl 6 saat ini.
Apakah masalah teratasi pada 5.10.1+, atau adakah masalah lain dengan operator kecocokan-pintar yang membuatnya sulit dalam praktik?
Apa masalahnya?
Apakah ada versi yang lebih banyak diperbarui (Perl 6, mungkin) yang memperbaiki masalah?
Sunting: Untuk mengklarifikasi, saya tidak bertanya tentang bug, melainkan pendapat bahwa perilaku yang dimaksud ~~
buruk.
Jawaban:
Orang sering bingung masalah yang muncul dengan operator smartmatch dengan yang muncul dengan
given/when
konstruk, seperti masalah leksikal$_
.Saya berpendapat bahwa jika Anda menggunakan operator smartmatch hanya pada literal, Anda tidak akan menjadi gila. Saya tidak bisa membuat janji tentang situasi lainnya. Mencoba mencari tahu apa
$a ~~ $b
yang dilakukan sudah cukup untuk mendorong setiap manusia yang layak untuk berlari menjerit kegilaan, dan mengambil bahasa pemrograman lain sekaligus.Atau setidaknya, itulah yang saya dapatkan dari Larry ketika dia mengedit bagian smartmatch dari Pemrograman Perl edisi ke-4 .
sumber
Operator pertandingan pintar tidak "rusak" , tetapi memiliki banyak bug. Perl v5.12 memperbaikinya, dan Perl v5.14 menyempurnakannya IMHO. Jadi, untuk menjawab pertanyaan Anda, Perl v5.12 dan lebih tinggi memperbaiki masalah ini. Anda dapat mencobanya dengan versi Perl v5.10 yang lebih baru, tetapi saya tahu ini bekerja lebih baik di Perl 5.12+.
Sunting: Untuk menjawab sunting Anda, lihat blog ini . Setelah membaca artikel itu, saya yakin itu cukup menjawab pertanyaan Anda.
sumber