On Thu, 26 Oct 2000, Dmitry Maevsky wrote: > VW> > VW> Не катит. Попробуй проделать то же самое со строкой. Я уж не говорю > VW> о более сложных случаях, типа $cgi->start_multipart_form(). >
> А в чем проблема??? строка длинная получается? Да. Когда таких строк у тебя в программе несколько сот, это крайне снижает ее удобочитаемость. > { my $result="Beginig"; > $result.=$cgi->start_multipart_form(); > $result.="Ending\n";} > (Правда я не вижу смысла в такой обработке $cgi-> :) > Так-что все катит и на ура. Сравните это с return "Form begins [cgi startmultipartform] form ends" Речь -то идет, естественно, именно о return а не о print. А смысл такой print <<EOF много-много HTML, перемежаемого вызовами функций EOF Такой скрипт очень легко читается, и очень неплохо пишется - копируется кусок статического html, а потом втыкается в нужных местах динамика. В Tcl так можно, но там нет here-document, и приходится внимательно следить за кавычками. А еще в perl нельзя определить свою собственную управляющую конструкцию. Например, в Tcl нет встроенного unless, но я могу написать proc unless {condition args} { eval if [list !$condition] $args } и получить конструкцию неотличимую по использованию от стандартного if. Благодаря этому в TclX есть такие симпатичные конструкции как for_recursive_glob file pattern { do_something with $file } И еще я обожаю писать процедуры нотификации об ошибке, которые по возвращении вызывают return из вызвавшей процедуры. Осознайте насколько это отличается от catch { .... error ... } или eval { .... die ... } -- Victor Wagner [EMAIL PROTECTED] Programmer Office:7-(095)-785-09-72 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus