Фича ~~ на практике

| Нет комментариев

Не первый год в Perl 5.10 есть оператор смартматчинга ~~, но я до сих пор не знал, где бы его применить. На днях Толя Шарифулин написал о том, как этот оператор использовать вместо grep.

А я, наконец-то, придумал, зачем мне это может потребоваться. Время от времени служебным утилитам требуется передавать опции, но читать их через Getopt::Long не очень хочется: во-первых, каждый раз приходится вспоминать синтаксис, а во-вторых, для коротких командных скриптов хочется более простого решения. Смартматчинг как раз его и дает:

say 'Debug' if '--debug' ~~ @ARGV;
say 'Daemon' if '-d' ~~ @ARGV;

Так же просто поискать ключ с помощью регулярного выражения:

say 'Help' if /^(-h|--help)$/ ~~ @ARGV;

Осталось придумать, как выделять аргументы ключей, например: -p 30.

И ссылка для привлечения внимания: smart-matching.com :-)

Комментировать

Страницы

  • img

Об этой записи

Сообщение опубликовано 16.12.2009 22:08. Автор — ash.

Предыдущая запись — Расписание выступлений на Saint Perl

Следующая запись — «Регулярные выражения. Сборник рецептов»

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.