Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.112.82] |
|
Сообщ.
#1
,
|
|
|
Подскажите плыз!
Строю магазин (учусь). Скрипт 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. |
Сообщ.
#2
,
|
|
|
для ускорения лучше каждую функцию поместить в отдельный .cgi файл и вызывать эти файлы поотдельности.
ЗЫ: только скорости всё равно не будет заметно |
Сообщ.
#3
,
|
|
|
Подумай: быстрее скомпилить 1 файл или 10 таких же?
По-моему, выигрыш в require есть однозначно. К тому же все отдельные виду страниц будут находиться в отдельных файлах, что удобно для чтения, разработки, понимания, наконец, управления сайтом. А ещё лучше, если вместо одного большого главного файла, к которому подсоединяются помельче, сделать много мелких (модулей) и загружать их когда потребуется. Например, модуль "MQuery" - отвечает за обработку запросов, хотя советую использовать по-возможности стандартные модули. (например, заменить вызов "use MQuery" на "use CGI qw'param'") Или модуль-пакет "MFiles" - отвечает за обработку и выдачу содержимого файлов. &MFiles::fread($fname,*::FH), например, будет выводить файл в *::FH, или ещё что. &MFiles::format($fname,*::FH,$flags), например, форматированный вывод файла; По-потребности. |