f.f.o. :: /add |
Александр Фенстер |
add@fenster.name | fenster.name |
But why call iterr
?
Well, the//
operator looks like a skewed version of||
, so the low-precedence version should probably be a skewed version ofor
. We can't skew it visually (even Larry thought that using italics would be going a bit far), so we skew it phonetically instead:or
->err
.
Дело в том, что сегодня я убил час на следующую проблему. При переносе на FreeBSD поломался небольшой перловый скрипт (не мой), в котором
была объявлена функция err
. Использовалась она до и после объявления, что вообще-то не является ошибкой в Perl,
но только если ваш Perl 5.8.9 на FreeBSD не собран с патчем defined-or, который не только добавляет новый модный оператор //
,
но и определяет ему символьное имя, и имя это — err
. В результате err
ниже объявления функции
понималось корректно, тогда как выше рассматривалось как оператор defined-or со всеми вытекающими последствиями.
Нет, ну ведь всё логично, да? &&
— and
. ||
— or
.
Как назвать //
? Да чего там думать, пусть будет err
. Пускай люди помучаются.
Иногда меня действительно посещают сомнения в адекватности авторов этого любимого мною языка. А пост пишу в надежде, что когда-нибудь кто-нибудь будет пытаться починить похожую проблему, как, например, вот здесь, и сможет нагуглить вменяемое объяснение, не потратив на это много своего личного времени.