[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: What perl's bad for



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			vitus@ice.ru
Programmer			Office:7-(095)-785-09-72
Communiware.Net 		Home: 7-(095)-135-46-61
http://www.communiware.net      http://www.ice.ru/~vitus



Reply to: