Perl & template engine
От: TheOldMan  
Дата: 14.08.09 18:36
Оценка:
Здравстуйте!

Есть небольшой но достаточно функциональный сайт с приличной посещаемостью. Сайт использует очень бедный по своих возможностях самописный template engine, который позволяет вывести в темплейтах переменные и кое-как внедрить if-else логику. Приходиться выносить немалые куски html-кода (в случаях, например, циклов) в скрипты и при этом смешивать между собой логику и представление. Поставили перед собой задачю заменить существующий template engine на более продвинутый и в тоже время хороший в плане производительности. Посмотрели в сторону Template Toolkit'а и plTenjin. Первый очень мощный, богатый и зрелый продукт, но в плане производительности не очень радует. Второй, быстрый, но для perl в бете, и при этом реализация желает быть лучшей. В тоже время наткнулись на еще один интересный и быстрый (судя по бенчмарках) template engine ctpp, но внедрить его не получилось. Мне получилось его скомпилировать, при этом получились программа, с помощью которой можно скомпилировать темплейт, и библиотека в ввиде so-файла, которая делает все темплейтные дела. Но, perl-модуль, написанный для этого шаблонизатора никак не хочет поднимать (или не хочет видеть) библиотеку и выдает ошибку:

Can't locate loadable object for module HTML::CTPP2 in @INC


Код модуля небольшой и простой:

package HTML::CTPP2;

use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);

require Exporter;
require DynaLoader;
require AutoLoader;

@ISA = qw(Exporter DynaLoader);

@EXPORT = qw(
);

@EXPORT_OK = qw(
);
$VERSION = '2.5.9';

bootstrap HTML::CTPP2 $VERSION;

# Thread-safe
sub CLONE_SKIP { return 1; }

# Autoload methods go after =cut, and are processed by the autosplit program.
1;


Выходя из случившихся проблем возникли такие вот вопросы:

1) Где perl ищет динамические библиотеки ввиде so-файлов?
2) Какие могут быть причины того, что модуль не подгружает библиотеку?
3) Как мне убедиться в том что библиотека действительно пригодна для загрузки и использования? Тоесть другими словами, как можно проследить шаги загрузки такой библиотеки и найти слабое место?
4) И посоветуйте, пожалуйста, хорошие шаблонизаторы для perl'a, которые вы использовали и остались довольными.


Буду благодарен за любую подсказку и совет!
суть в простоте, а простота в сути
Re: Perl & template engine
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 15.08.09 04:33
Оценка:
Здравствуйте, TheOldMan, Вы писали:

TOM>4) И посоветуйте, пожалуйста, хорошие шаблонизаторы для perl'a, которые вы использовали и остались довольными.


Уже несколько лет пользуюсь вот таким велосипедиком, для моих нужд пока полностью хватало:
http://about.thedeemon.com/products/pts/
Скорость не сравнивал, но в 99% случаев там идет просто вывод скэшированной страницы с диска.
Re: Perl & template engine
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 17.08.09 09:15
Оценка:
Здравствуйте, TheOldMan, Вы писали:

....

TOM>1) Где perl ищет динамические библиотеки ввиде so-файлов?

как в системных директориях libs
TOM>2) Какие могут быть причины того, что модуль не подгружает библиотеку?
so скомпилирован неправильноб не та версия crt, не хватает других зависимых библиотек, много чего ..
TOM>3) Как мне убедиться в том что библиотека действительно пригодна для загрузки и использования? Тоесть другими словами, как можно проследить шаги загрузки такой библиотеки и найти слабое место?
начать с трассировки файловых операций (strace для linux, filemon для win)
TOM>4) И посоветуйте, пожалуйста, хорошие шаблонизаторы для perl'a, которые вы использовали и остались довольными.
Text::Template


TOM>Буду благодарен за любую подсказку и совет!
Re[2]: Perl & template engine
От: CoolCmd Россия  
Дата: 22.08.09 10:25
Оценка:
Здравствуйте, achmed, Вы писали:

A>начать с трассировки файловых операций (strace для linux, filemon для win)

Для винды лучше process monitor от того же автора.
простите, я убил небо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.