Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Генерация кода <a>. Perl. (http://forum.oszone.net/showthread.php?t=52853)

benya 18-08-2005 13:51 348931

Генерация кода <a>. Perl.
 
Господа, как правильнее (удобнее) сгенерировать на лету ссылку html
Как-то я это делаю по варварски. К примеру...Нам нужно сформировать ссылку на лету и в строку добавить параметры только в том случае, если они определены. Например :
<a href=\"index.cgi?a=ph&t=$ln->{id}"; if ($sid) {print "&sid=$sid"}; print "\" class=\"regular\">";
Строчка &sid=$sid вставляется только тогда когда переменная $sid определена.
Как можно все это записать проще? Каждый разделять скобки утомительно.
В книге по Перлу есть краткое (буквально 2 строчки) описание как по ссылке (не путать с HTML ссылкой) организовать вызов функции, которая возвращает результат прямо в print "" не разрывая скобок. Например :
print "Функция вернула @{[mysub(1,2,3)]}";
Но у меня так и не вышло ничего... Кто может привести работоспособный пример7??

ivank 18-08-2005 19:54 349049

Код:

$sid='10';
print "<a href='index.php?somstuff=someotherstuff@{[param(sid,$sid)]}'>\n";
undef $sid;
print "<a href='index.php?somstuff=someotherstuff@{[param(sid,$sid)]}'>\n";
sub param { return "&@_[0]=@_[1]" if(@_[1]); }

у меня вполне работает. Ыерсия перла 5.6. Я не большой специалист, вполне вероятно, что возможность вызывать функции из кавычек регулируется при сборке или ключами командной строки/хитрыми ключевыми словами. Тем не менне приведённый пример у меня работает.


Время: 13:41.

Время: 13:41.
© OSzone.net 2001-