Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Повторное использование кода, в разных программах 
:(
    Опции темы
BISON*
  Дата 6.8.2004, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 8.7.2003

Репутация: нет
Всего: 1




У меня в двух CGI-скриптах(написанных на Perl) используются одинаковые функции.
Можно ли их вынести в один файл, а затем использовать в скриптах? (Что-нибудь типа "include") Как это сделать?

Заранее благодарен Всем!


PM MAIL WWW   Вверх
korob2001
Дата 6.8.2004, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 6
Всего: 61



Создай класс или модуль.
Вот пример класса:
Код

package MyClass;

use strict; # Не обязательно, но желательно

# конструктор
sub new {
   my $check = shift;
   my $class = ref( $check ) || $check;
   my $self  = {};
   bless( $self, $class );
   return $self;
}

# Далее идут твои методы
# Следующий метод только для примера, его можно удалить.
sub HelloCheck {
      shift;
      my $name = shift || "Anonim";
      return("Hello, $name" . "!");
}

1; # В самом конце класса - обязательно нужно вернуть истинное значение.

Имя файла класса, должно совпадать с именем пакета с точностью до регистра. В нашем случае имя файла будет выглядеть так: MyClass.pm
Следует обратить внимание на расширение .pm, а не.pl - это для того что-бы нам при подключении класса не нужно было использовать никаких расширений.

А теперь давай попробуем обратиться к методу HelloCheck класса MyClass.
Код

#!/usr/bin/perl -w
use strict;

# Указываем путь к каталогу в котором Perl будет искать наш класс.
# По умолчанию класс и вызывающая программа находятся в одном каталоге.
use lib qw( . );

# Подключаем класс.
use MyClass;

#Создаём объект
my $class = new MyClass;

# Обращаемся к методу HelloCheck
# Слово World можно заменить на любое другое или вообще
# не передавать никаких параметров, тогда будет использовано
# значение по уполчанию Anonim
my $string = $class->HelloCheck('World');

# Выводим на терминал полученную из класса строку
print $string, "\n";

Удачи.

Это сообщение отредактировал(а) korob2001 - 6.8.2004, 16:07


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
BISON*
Дата 15.8.2004, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 8.7.2003

Репутация: нет
Всего: 1



korob2001 Спасибо, я понял теперь в каком русле надо копать!!

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0770 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.