On Tue, Sep 17, 2013 at 10:42:47AM +0400, Ivan Petrov wrote: > с Perl 5.10 мы применяем в своих проектах ~~ для случаев когда нужно > сравнить два скаляра один из которых может быть undef, а так же там > где надо проверить входит ли скаляр в лист. > > с 5.18 ~~ ушла в experimental и стало усиленно ругаться. > > в perldelta просто написано о том что теперь експериментал, но не > написаны планы относительно него: что будет в 5.20, 5.22? > > есть у кого какая-то ссылка на обсуждение или документ относительно > планов на ~~. а то ходить по тысячам файлов и выпиливать все места > где написано `last if $var ~~ @list;` крайне геморройно. > но на 5.18 смигрировать тоже необходимо.
Вот предложение Ricardo Signes по новому smartmatch: http://www.nntp.perl.org/group/perl.perl5.porters/2012/08/msg190658.html там дальше огромный тред по обсуждению деталей, но примерно всё вращается вокруг плана ## The New ~~ Operator $a $b Meaning ======= ======= ====================== Any undef ! defined $a Any ~~-overloaded ~~ overloading is used ~~-ol Any ~~ overloading is used (reversed) Any CodeRef, &{}-ol $b->($a) Any Regexp, qr-ol $a =~ $b Any Simple $a eq $b Any Any fatal Для вашего случая предлагается прикрутить junctions: if ( $var ~~ any( @list ) ) if ( $var ~~ all( @list_of_regexp ) ) -- Vladimir Lettiev aka crux ✉ [email protected] -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
