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: