DR>>> язык. Ибо - нелогичен: в кавычках во всем мире задаются
DR>>> _константы_, и _только_ перл имеет наглость залазить внутрь того,
EG>> Сразу видно, что паскаля ты не знаешь.
DR> С паскалем я "знаком" - когда-то давно писал небольшие программки. Там (как и
DR> в некоторых других языках) действительно в качестве ограничителей строковых
DR> констант используются не кавычки а апострофы. Что, впрочем, не меняет сути
DR> дела.
Ты действительно не знаешь языков.;)
Во-первых, эта фича перла взята из шелла. Который тоже язык, FYI,
хотя и специфический. И у которого "исходное" обоснование такой фичи.
Во-вторых, точно так же ведёт себя Tcl:
==={{{
Command substitu-
tion, variable substitution, and backslash substitution are per-
formed on the characters between the quotes as described below.
===}}}
Так что твоё безмерное удивление свидетельствует только о том, что ты не привык
к тому, что в кавычках может что-то происходить, и больше ни о чём.
Ах да - ещё о том, что ни на шелле ни на Tcl ты серьёзно не писал и, вероятно,
их даже вблизи не видел.;))
EG>> Перл тоже не залезает внутрь строковых констант, только они в нем как
EG>> в паскале, внутри апострофов.
DR> Угу. Проблема в том, что в том "руководстве для начинающих", глядя на котрое я
DR> пытался начинать писать на перле, с места в карьер использовались кавычки
DR> (видимо как "более универсальный" чем апострофы метод задания строки). Которые
DR> (кавычки) я _воспринял_ как ограничитель константной строчки, и попытался
DR> начать писать. О том, что кавычки - не константа, я узнал только тогда, когда
DR> полез выяснять, почему не работает написанное.
DR> Да - "плохое руководство, плохо читаешь, и вообще сам виноват". Hо в
DR> _правильных_ языках при изучении должны возникать _другие_ проблемы! Hе
Видимо, плохое руководство. Потому что если бы оно было хорошее - объяснило бы,
что без perl -wc $file вообще опасно что-то запускать (в этом случае оно
тебе уже выругалось бы на неэкранированный '@', встретившуюся только один
раз переменную, и так далее), а без perl -wc -Mstrict $file - вредно,
если скрипт более двух экранов.
В мане же - и в нормальных руководствах - эта особенность двойных кавычек
(и вообще формы qq с любыми ограничителями, например: qq%$x$y%) - расписана
чёрным по белому. Или какой там цвет у тебя у символов будет.
DR> "написал а оно взорвалось и отформатировало диск, и хрен знает почему" (да
DR> потому, что в языке с таким "свободным" синтаксисом написать что-то
DR> синтаксически ошибочное довольно сложно, а поведение даже с виду очевидных
DR> операторов может оказаться взрывоопасным из-за трюкаческого синтакисиса языка),
DR> а "а почему оно мне ругается, вроде же правильно написано" (то есть, язык
DR> должен не поощрять ошибки (и подсовывать свои собственные глюки в случае если
DR> программист не насажал своих), а обнаруживать их, и предупреждать о них
DR> программиста).
Ещё раз: perl -wc -Mstrict - и 99% опасностей уйдут сами собой.
-netch-