(Perl) Передача ссылки на функцию в подпрограмму

Pavel Kilevatyh
Дата: 24.08.2006 13:58:17
Доброго дня.
Что-то я торможу. В манах не нашел.
Положим есть некая подпрограмма:
 sub compileRow{  return $q->Tr($q->td(['1','2','3'])); }

Мне нужно передать в эту подпрограмму ссылку на функцию модуля CGI, так что бы вызывая эту ПП в удобочитаемом виде, например,
&compileRow(\$q->td)   или  &compileRow(\$q->th)

получал результат выполнения ф-ии вида
sub compileRow{   return $q->Tr($q->td(['1','2','3'])); }
и
sub compileRow{   return $q->Tr($q->th(['1','2','3']));}
соответственно.

Примеры приведены тривиальные. В жизни эта ПП много сложней, поэтому я и ищу элегантный способ а не вариант типа:
sub compileRow{
   if ('td' eq shift)    return $q->Tr($q->td(['1','2','3'])); else return $q->Tr($q->th(['1','2','3']));
}

для сохранения читаемости кода.
g613
Дата: 24.08.2006 15:36:27
compileRow(\&{ $q->td })
Pavel Kilevatyh
Дата: 24.08.2006 16:02:53
Ок.
Благодарю