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

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

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 03:31 11.05.24 
Клубове/ Компютри и Интернет / Perl Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема 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



Цялата тема
ТемаАвторПубликувано
* Perl pluggins wtdv   18.09.07 16:26
. * Re: Perl pluggins novobranec   18.09.07 19:26
. * Re: Perl pluggins smoke   18.09.07 21:07
. * Re: Perl pluggins wtdv   19.09.07 01:08
. * Re: Perl pluggins smoke   19.09.07 12:54
. * Re: Perl pluggins wtdv   19.09.07 13:25
Клуб :  


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

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