11.20
Mamy już szkielet bota, ale taki bot powinien być łatwy w rozszerzaniu a trzymanie wszystkiego w jednym pliku nie jest szczególnie czytelne, spróbujmy więc rozbić go na rdzeń i moduły dostarczające content.
Ścieżka do modułów + helper dostarczający wygodnego ‘load $module_name’
use lib './lib'; ... use Module::Load; |
Tutaj wczytujemy listę modułów z configa i przekazujemy im parametry.
Przy okazji zapisujemy wynik metody ‘info’ która posłuży nam jako opis modułu w helpie
39 40 41 42 43 44 45 46 | my $module = {}; while (my ($name, $module_config) = each %{ $cfg->{'modules'} } ) { my $modulename = 'XANi::Infobot::Agent::' . ucfirst($name); load $modulename; my $m = $modulename->new($module_config); $module->{$name}{'info'} = $m->info(); $module->{$name}{'handler'} = $m; } |


