Я никогда не использую одинарные кеш-ключи. Я знаю, что {} в основном работает как кавычки, за исключением особых случаев (+ и двойные кавычки). Мой редактор тоже это знает и дает мне несколько подсказок по цвету, чтобы убедиться, что я сделал то, что хотел.
Использование одинарных кавычек везде кажется мне «защитной» практикой, совершаемой людьми, которые не знают Perl. Сохраните немного износа клавиатуры и изучите Perl:)
Из-за разглагольствования, настоящей причины, по которой я публикую этот комментарий ... другие комментарии, похоже, упустили тот факт, что +
"процитирует" голое слово. Это означает, что вы можете написать:
sub foo {
$hash{+shift} = 42;
}
или
use constant foo => 'OH HAI';
$hash{+foo} = 'I AM A LOLCAT';
Итак, совершенно очевидно, что +shift
означает «вызов функции сдвига», а shift
означает «строку 'shift" ".
Я также укажу, что cperl-mode правильно выделяет все различные случаи. Если это не так, пингуйте меня по IRC, и я исправлю это:)
(Да, и еще одна вещь. Я цитирую имена атрибутов в Moose, как в has 'foo' => ...
. Это привычка, которую я приобрел, работая со Стеваном, и хотя я думаю, что это выглядит хорошо ... немного несовместим с остальной частью моего кода. Может быть, я перестану делать это в ближайшее время.)