wisgest
@wisgest
Слесарь холодной обработки металла

Почему в Perl '0' — «ложь» (а '00' — нет)?

Причина отвратившая меня от преодоления дальнейших затруднений при изучении Perl возникла при самом первом знакомстве: недоумение от непоследовательного, на мой взгляд, истолкования истинности строк ('' и '0' — «ложь», остальные — «истина»).

С одной стороны было бы понятно, если бы любая непустая строка истолковывалась как истинная (как, например, в JavaScript), с другой, — если бы как ложная истолковывалась любая строка с числовым значением 0: '00', '0.0'… (как, например, в AutoHotkey).

Почему же сделано так, как сделано? Я сомневаюсь, что из соображения простоты исполнения, — скорее проще было бы воплотить один из двух указанных мной подходов. Или, может быть, есть какие-то прикладные ненадуманные случаи, в которых оправдан именно такой выбор? (Хотя, если говорить о реализации истинностных значений, тоже не совсем понятно: почему «истина» — число 1 (хотя как проверить, что это именно число, а не строка, — как в Perl узнать тип скалярного значения?), а «ложь» — строка ''?)

(Да, я знаю, что подобным же образом дело обстоит в PHP, но: в нём это сделано под влиянием Perl; PHP — средство, которое выбирают не по любви, а по необходимости; уровень вхождения в PHP ниже.)

Понимаю, что такой вопрос прежде всего следовало бы задать создателю языка, но, думаю, я не первый, у кого возникло такое недоумение и, возможно, на него уже были даны ответы и, может быть, даже признание собственной ошибки…

Дополнительно гораздо более общий вопрос: А стоит ли учить Perl без большой нужды? Есть ли в нём какие-то эстетические достоинства или доступные прежде всего ему области применения? Регулярные выражения? Но они на сегодняшний день доступны в большинстве других языков непосредственно или через библиотеки (пусть даже их синтаксис заимствован из Perl).
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 1
si1n3rd
@si1n3rd
Почему же сделано так, как сделано?
Цитата из одной статьи на эту тему, "I think this is because Larry Wall, creator of Perl, has a general positive world-view. He probably thinks there are very few bad and false things in the world. Most of the things are true."
А стоит ли учить Perl без большой нужды?
PERL - Practical Extraction and Reporting Language. Говорят, что он очень хорош для работы с текстовыми данными. Часть утилит в UNIX/Linux написана на нем. cPanel, Bugzilla также на нем написаны. Еще его можно включить в стек LAMP.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
GXB Development Йошкар-Ола
от 80 000 до 160 000 руб.
Sidenis Томск
До 180 000 руб.
Wheely Москва
от 250 000 руб.