Большинство людей упускают из виду большую часть синтаксиса Perl и операторов по умолчанию. Perl в значительной степени является языком DWIM (то есть делайте то, что я имею в виду). Одна из основных целей дизайна - «сделать обычные вещи простыми, а сложные - возможными».
В рамках этого разработчики Perl говорят о кодировании синтаксиса Хаффмана и думают о том, что нужно делать людям, вместо того, чтобы просто давать им низкоуровневые примитивы. То, что вы делаете часто, должно требовать минимум набора текста, а функции должны действовать как наиболее распространенное поведение. Это сэкономит немало усилий.
Например, split имеет множество значений по умолчанию, потому что есть некоторые варианты использования, в которых не используются общий случай. Без аргументов split
разбивает $_
на пробелы, потому что это очень распространенное использование.
my @bits = split;
Немного менее распространенный, но все же частый случай - разбить $_
на что-то еще, поэтому есть немного более длинная версия этого:
my @bits = split /:/;
И, если вы хотите четко указать источник данных, вы также можете указать переменную:
my @bits = split /:/, $line;
Думайте об этом так, как вы обычно относитесь к жизни. Если у вас есть обычная задача, которую вы часто выполняете, например, поговорите с барменом, у вас есть сокращение, охватывающее обычный случай:
Обычно
Если вам нужно сделать что-то, немного другое, вы немного расширите это:
Обычный, но с луком
Но всегда можно отметить специфику
Грязный мартини Bombay Sapphire, взболтанный, но не перемешанный
Подумайте об этом в следующий раз, когда будете просматривать веб-сайт. Сколько кликов вам нужно, чтобы выполнить обычные операции? Почему одними веб-сайтами легко пользоваться, а другими - нет? В большинстве случаев хорошие веб-сайты требуют, чтобы вы выполняли минимум работы, чтобы делать обычные вещи. В отличие от моего банка, который требует не менее 13 кликов для оплаты счета по кредитной карте. Дать им деньги должно быть действительно легко. :)
person
brian d foy
schedule
12.04.2010
$_
; и, возможно, еще кое-что. - person FMc   schedule 11.04.2010