[Moscow.pm] Switch vs. ~~ (Was: Re: Забавные слайдики по perl 5.10)
Andrew Shitov
andy на shitov.ru
Пн Ноя 19 20:32:01 PST 2007
> Кстати, кто-то понял идею Smart Matching (слайд 67)? Разве это не то
> же самое, что в остальных языках называется case?
Не тоже самое.
> switch - да - он в си даже swtch называется.
> А вот смартматчинг это нечто более понтовое.
Одно и тоже. Не путайте людей :-)
Смарт-матчинг (~~) - именно та операция, которая выполняется внутри
веток when блока given. Инструкция given лишь устанавливает переменную $_,
которая участвует в сопоставлениях в каждом when.
Код
given $x {
when /\d/ {...}
}
означает именно упомянутый смарт-матчинг:
given $x {
when $_ ~~ /\d/ {...}
}
Мало того, в 5.10 отдельностоящий when работает как if (и сообщает об
ошибке при этом :-)
--
Андрей Шитов
______________________________________________________________________
andy на shitov.ru | http://www.shitov.ru
Подробная информация о списке рассылки Moscow-pm