![]() |
![]() |
|
||
![]() |
|
||||||||||||||||||||||||||||||||||||
| [22 февраля 2002 г.] |
Вы читаете Откровение Второе, связанное с главой 2 моей книги, которую еще называют «Camel Book». Статья подразумевает вот что: если во второй главе книги есть что-то такое, что я не затронул здесь, значит, это «что-то» не изменилось в
Прежде чем продолжить, я хотел бы в очередной раз поблагодарить людей, буквально принесших себя в жертву при составлении документов RFC. (И я прошу прощения у тех, в чьи мозги я не смог проникнуть достаточно, чтобы реализовать их идеи в полном объеме.) Я также хочу сказать огромное спасибо человеку по имени Damian Conway. Он легко сможет узнать здесь множество своих идей, некоторые из которых я немного подкорректировал.
Ну что же, вот те RFC, которые затронуты в этой статье.
RFC PSA Title
--- --- -----
Исходный код
005 cdr Многострочные комментарии в Perl.
102 dcr «Встроенные» комментарии в Perl.
Типы данных
161 adb В Perl все становится объектом.
038 bdb Стандартизировать обработку
«неправильных» чисел, таких как
бесконечность и NaN.
043 bcb Встроить поддержку BigInt (и BigRat) в скаляры.
192 ddr Значение Undef не равно ни одному другому
значению.
212 rrb Сделать, чтобы length() работала для массивов.
218 bcc Конструкция проверки типа my Dog $spot.
Переменные
071 aaa Запретить синтаксис $пакет'переменная.
009 bfr «Высокогорные» типы переменных.
133 bcr Альтернативный синтаксис для имен переменных.
134 bcc Другой синтаксис срезов массивов и хэшей.
196 bcb Более прямой синтаксис для хэшей.
201 bcr Срезы хэшей.
Строки
105 aaa Отключить ошибку "In string @ must be \@".
111 aaa Ограничители here-документов.
162 abb Содержимое here-документов.
139 cfr Вызов специальных функций наподобие s///.
222 abb Интерполяция вызовов методов объекта.
226 acr Выборочная интерполяция строк в апострофах.
237 adc Хэши интерполируются для строк в кавычках.
251 acr Интерполяция вызовов функций классов.
252 abb Интерполяция обычных функций.
327 dbr Знак \v для вертикальной табуляции.
328 bcr Апострофы не интерполируют \ и \\.
Файлы
034 aaa Угловые скобки не должны использоваться для
получения содержимого директории.
051 ccr Угловые скобки должны понимать имена
файлов и списки.
Списки
175 rrb Добавить ключевой слово «list» для
форсирования спискового контекста (по
аналогии со scalar).
Отклоненное
010 rr Файловые переменные должны использовать *
как префикс типа, если typeglob-ы будут
устранены.
103 rr Исправить старшинство $pkg::$var.
109 rr Меньше пунктуации в строке, или
почему бы не избавиться от @%.
245 rr Добавить ключевое слово empty в DWIM
для очистки переменных.
263 rr Добавить ключевое слово Null и
фундаментальный тип данных.
Вообще говоря, компоненты
Признаю, я имел предубеждения на счет
Но даже если я бы и не был ослеплен своим предубеждением, мне казалось, что я подходил к вопросу с философской позиции и замечал, что в большинстве случаев, даже если язык имел многострочные комментарии, люди все же имеют тенденцию использовать их примерно вот так:
/* * Вышел из тумана * Месяц с лицом самурая. * Обнажил меч из кармана кимоно. */
Контраргументом тут может быть факт, что люди не всегда делают так в Си, так что почему они должны страдать в Perl? И если нет другого способа делать многострочные комментарии в Perl, всем резко становится плохо. Однако другой способ все же есть, хотя он и отклонен в этом RFC как «обходной путь».
Вот он. Мне кажется, вместо того, чтобы добавлять в язык новый тип комментариев или создавать нечто, «работающее», как комментарий, нужно просто исправить все недостатки POD, чтобы его использование для комментирования уже нельзя было трактовать как «обходной путь». Дизайн POD мы отложим до 26-го Откровения, а сейчас мы можем лишь взвесить способы переключения с Perl на POD и обратно для комментирования. Итак, в
Нужно заметить, что общий вид этих самых
Я никогда особо не любил «встроенные» комментарии (наподобие
Прагма, включающая «встроенные» комментарии, будет также позволять по желанию использовать
Главное нововведение
Хотя
Сейчас, забегая вперед, стоит упоминуть о понятии «свойство». (В
По сути, этот RFC носит философский характер, и детали объясняются весьма скупо. Вообще, я согласен с утверждением, что все объекты Perl должны вести себя именно как объекты, если вы используете их в этом контексте. Если же вы захотите использовать их не как объекты, Perl также не будет против. (Вы можете использовать индексацию хэшей и синтаксис срезов для доступа к атрибутам, например, даже в том случае, если сами атрибуты не хранятся изначально в хэше.) Факт, что
Продолжение следует.
|
![]() |
| ||||||||||||||||||||||||||||
| Ларри Уолл (перевод dk) | 22 февраля 2002 г. ©1999-2012 | | Контакт | Вернуться к оглавлению |