Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 06:51 06.06.24 
Компютри и Интернет
   >> Perl
Всички теми Следваща тема *Кратък преглед

Тема Perl plugginsнови  
Авторwtdv (Нерегистриран)
Публикувано18.09.07 16:26



Здравейте, трябва ми някъде да прочета как се пишат пърл програми с възможност за добавяне на плъгини. Просто не ми е ясна цялата механика на това - как основата ползва плъгините след като когато е написана не е знаела какъв плъгин ще се напише за нея и обратното.
Примерно съм написал обикновена уеб страничка с бутончета и решавам да направя плъгин с който се добавя нов бутон до другите и съответно негова си функция. Та как ще се впише това ново бутонче в цялата картина и няма ли да пречи на другите.
Моля ако може да ми дадете линкове с материали и примери.



Тема Re: Perl plugginsнови [re: wtdv]  
Авторnovobranec (Нерегистриран)
Публикувано18.09.07 19:26



Според мен питаш за различни неща...
Конкретизирай се малко. Какво общо има генерирането на динамични html страници с предефинирането на методи в perl?



Тема Re: Perl plugginsнови [re: wtdv]  
Автор smoke ()
Публикувано18.09.07 21:07



Няма понятие плъгин в Пърл.
Има модули (или по-точно класове, виж search.cpan.org).
Ако питаш за уеб-базирани решения, може би визираш темплейт системите или фреймуъркс като Каталист и Мейпол?



Тема Re: Perl plugginsнови [re: smoke]  
Авторwtdv (Нерегистриран)
Публикувано19.09.07 01:08



Явно не съм се изразил правилно. На пърл пиша отдавна. Не е въпроса за самите модули. Това със уеб-а беше лош пример. Искам да напиша една програма, но в последствие да добавям код като плъгини към нея. Искам да избегна фрейуоркс и тнт. Попаднах на Module::Pluggable и Class::Trigger, но не ми е ясна цялата механика на програма, която работи с допълнително добавени по-късно плъгини. Мерси все пак.



Тема Re: Perl pluggins [re: wtdv]  
Автор smoke ()
Публикувано19.09.07 12:54



Не знаех за Module::Pluggable, оказва се удобно решение.
Това е кратък пример, ако не съм обяснил добре, питай.

командите са в bold:
files in the testing dir `ls -R`


.:
MyParser MyParser.pm test.pl
./MyParser:
Plugin
./MyParser/Plugin:
A.pm B.pm
cat test.pl
#!/usr/bin/perl

use strict;
use warnings;
use MyParser;
my $obj = MyParser->new({});

### praktichnoto w plugin abstrakciqta:
$obj->parse("tovA e teST");

cat MyParser
package MyParser;

use Module::Pluggable require => 1;

sub new {
my $class = shift;
my $self = shift;

bless $self, $class
}

sub parse {
my $self = shift;
my $string = shift;

for my $plugin ($self->plugins) {
$plugin->parse($string);
}
}

1;

cat MyParser/Plugin/A.pm
package MyParser::Plugin::A;

sub new {
my $class = shift;
my $self = shift;

bless $self, $class
}

sub parse {
my $self = shift;
my $data = shift;

print "plyginyt '" . __PACKAGE__ . "' implementira lowercase: " . lc $data . "\n";
}

1;

cat MyParser/Plugin/B.pm
package MyParser::Plugin::B;

sub new {
my $class = shift;
my $self = shift;

bless $self, $class
}

sub parse {
my $self = shift;
my $data = shift;

print "plyginyt '" . __PACKAGE__ . "' implementira uppercase: " . uc $data . "\n";

}

1;


perl test.pl следва да изведе на STDOUT това:

plyginyt 'MyParser::Plugin::A' implementira lowercase: tova e test
plyginyt 'MyParser::Plugin::B' implementira uppercase: TOVA E TEST



Тема Re: Perl plugginsнови [re: smoke]  
Авторwtdv (Нерегистриран)
Публикувано19.09.07 13:25



Мерси smoke този пример мисля, че ми очертава картината :) останалото сам ще си го доразвия.

Успех




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.