Реализация исправления орфографических ошибок для поисковых систем эффективным способом не тривиальна (Вы не можете только вычислить edit/levenshtein расстояние до каждого возможного слова). Решение на основе индексов k-грамма описано в Введение в Информационный поиск (полный текст, доступный онлайн).
Если вам нужно загрузить весь модуль во время выполнения, вы используете require
. Но для импорта вам потребуется дополнительный код. Вот пример:
## this function is almost the same
## as "use My::Module qw( :something )"
sub load_big_module_at_runtime {
## load module in runtime
require My::Module;
## do import explicty if you need it
My::Module->import( ':something' );
}
Вы также можете использовать autouse
для загрузки модуля, только когда его функция используется. Например:
## will load module when you call O_EXCL()
use autouse Fcntl => qw( O_EXCL() );
Существует также модуль SelfLoader
, который позволяет загружать отдельные функции только тогда, когда они вам нужны. Взгляните на модуль AutoLoader
, который делает почти то же самое.
Я также рекомендую прочитать соответствующие рецепты из Perl Cookbook .