|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Slawa Olhovchenkov 2:5030/500 07 Sep 2005 12:57:00 To : Sergey Skvortsov Subject : perl модули -------------------------------------------------------------------------------- 07 Sep 05, Sergey Skvortsov writes to Slawa Olhovchenkov: >> А если я верну строку? SS> Главное чтобы не пустую и не "0". К примеру "+0" - является TRUE. Ура. Это позволяет мне избавится от привязки имен файлов к именам модулей. Буду имя модуля возвращать. >> И модули вот так грузить буду: >> >> $dir = $1 if($ENV{SCRIPT_FILENAME} =~ /^(.*)\/.*$/); >> opendir(DIR, $dir) || die "can't opendir $dir: $!"; >> while($file = readdir(DIR)) { >> next if($file !~ /\.pm$/); >> $pth = "$dir/$file"; >> $module = require "$pth"; >> $Modules{$module} = ${module}->ident; >> $Actions{$module} = eval {\&{"${module}::action"}}; >> } >> closedir DIR; >> >> И что-то мне от этого eval избавиься не удается. SS> Безумие. Модули для того и нужны, чтобы не мыслить в терминах файлов. SS> Perl славен тем, что поддерживает самые безумные способы кодирования. SS> Hо к чему этим злоупотреблять? Hу я же объяснял, что данный кусок универсальный и не зависит от количества плагинов и их функциональности. Все это он должен определять динамически, в момент запуска. Hу и лежит это все не в системных каталогах. SS> В настоящее время без my/our и без "use strict; use warnings;" SS> обходиться нельзя (==идеологически неверно). use strict; стоит в самом начале. Там же и все my. Так что, без eval в этом месте -- никак? ... Тянем-потянем, вытянуть... NO CARRIER --- GoldED+/BSD 1.1.5 * Origin: (2:5030/500) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/2221431eb090.html, оценка из 5, голосов 10
|