Войти

Показать полную графическую версию : Генерация кода <a>. Perl.


benya
18-08-2005, 13:51
Господа, как правильнее (удобнее) сгенерировать на лету ссылку 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
$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. Я не большой специалист, вполне вероятно, что возможность вызывать функции из кавычек регулируется при сборке или ключами командной строки/хитрыми ключевыми словами. Тем не менне приведённый пример у меня работает.




© OSzone.net 2001-2012