На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Внимательно изучите правила раздела перед созданием темы
0. ПРИЛАГАЙТЕ СВОИ СКРИПТЫ.
1. Прежде чем создать топик, используйте поиск. Возможно это уже обсуждалось.
2. В топике указывайте ОС, режим работы скрипта (CLI|CGI). Очень желателен вывод лог-файлов и того места, куда у вас назначен вывод данных (STDOUT|STDERR)
3. Помните: вы знаете что вы хотите, а форумчане - нет. Поэтому следуйте простому правилу: грамотный развернутый вопрос - грамотный развернутый ответ.
Модераторы: ANDLL
  
    > require в Perl
      Подскажите плыз!

      Строю магазин (учусь).
      Скрипт shop.pl
      Организация скрипта такая (приведена в сокр. варианте).

      #!/usr/bin/perl
      require "system.pl";
      require "catalog.pl";
      require "basket.pl";
      require "orders.pl";


      if ($action eq "catalog") {
      показую каталог
      }
      elsif ($action eq "basket") {
      корзина
      }
      elsif ($action eq "orders") {
      заказ
      }
      else {

      }

      Собственно что хотел узнать! В файле system.pl
      расположены общие функции, а в других специальные,
      которые испоьзуются в зависимости от ветки if elsif else.
      При каждом вызове скрипта на подключение ненужных в данный момент
      модулей уходит время(или я не прав, то прошу поправить).
      Как сделать так чтобы модули подключались по необходимости.
      Если так require "basket.pl" if ($action eq "basket"); то повлияет
      ли это на время работы скрипта?


      Как лучше подключать модули (не *.pm) командой require или do.





        для ускорения лучше каждую функцию поместить в отдельный .cgi файл и вызывать эти файлы поотдельности.
        ЗЫ: только скорости всё равно не будет заметно smile.gif
          Подумай: быстрее скомпилить 1 файл или 10 таких же?

          По-моему, выигрыш в require есть однозначно. К тому же все отдельные виду страниц будут находиться в отдельных файлах, что удобно для чтения, разработки, понимания, наконец, управления сайтом.

          А ещё лучше, если вместо одного большого главного файла, к которому подсоединяются помельче, сделать много мелких (модулей) и загружать их когда потребуется.

          Например, модуль "MQuery" - отвечает за обработку запросов, хотя советую использовать по-возможности стандартные модули. (например, заменить вызов "use MQuery" на "use CGI qw'param'")

          Или модуль-пакет "MFiles" - отвечает за обработку и выдачу содержимого файлов.
          &MFiles::fread($fname,*::FH), например, будет выводить файл в *::FH, или ещё что.
          &MFiles::format($fname,*::FH,$flags), например, форматированный вывод файла;

          По-потребности.
          Сообщение отредактировано: Tishaishii -
          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0176 ]   [ 14 queries used ]   [ Generated: 20.05.24, 10:23 GMT ]