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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вызвать компонент mason`а из Perl`a, скрипт написан на Perl (*.pl). Не CGI 
V
    Опции темы
katyket
  Дата 30.3.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго дня суток!

У меня такая вот проблемка, не могу ее никак побороть! smile 
Буду рада за помощьsmile

Итак, начну...

Мне с перлового скрипта (не CGI, а .pl) надо вызвать мейсоновский компонент.

я делаю так:

   my $plugin = $row->{s_type}->{plugin_cdr_display};
    my $plugin_path_cdr = '/cdr_browser/plugins/'.$plugin.'.mcomp';
    if ( $interp->comp_exists( $plugin_path_cdr ) ) {

        my $comp = $interp->load($plugin_path_cdr);

        if ( $comp->method_exists('get_cdrs') ) { # Ошибка возникает при вызове этой строки!!!!!!!!

            $row->{cdrs} = $comp->exec('get_cdrs', cdr_obj => $cdr, hash => $hash);
        } else {

            $row->{cdrs} = $cdr->get_cdrs( $hash );
        }
    } else {
        warn "The plugin doesn't exist. Path: $plugin_path_cdr";
    }

А в лог пишутся такие ошибки:

Error during compilation of /home/porta-admin/apache/autohandler:
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 132.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 132.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 133.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 151.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 153.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 154.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 181.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 182.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 203.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 204.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 205.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 207.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 208.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 211.
Global symbol "$r" requires explicit package name at /home/porta-admin/apache/autohandler line 216.
BEGIN not safe after errors--compilation aborted at /home/porta-admin/apache/autohandler line 217.


Stack:
  [/usr/local/lib/perl5/site_perl/5.8.8/HTML/Mason/Interp.pm:445]
  [/usr/local/lib/perl5/site_perl/5.8.8/HTML/Mason/Interp.pm:767]
  [/usr/local/lib/perl5/site_perl/5.8.8/HTML/Mason/Component.pm:328]
  [/usr/local/lib/perl5/site_perl/5.8.8/HTML/Mason/Component.pm:288]
  [/usr/local/lib/perl5/site_perl/5.8.8/HTML/Mason/Component.pm:279]
  [/home/porta-admin/utils/x.pl:169]

И скрипт завершается с кодом 255.

Может быть кто-то знает в чем проблема? smile 

Заранее благодарюsmile smile 



PM MAIL   Вверх
arto
Дата 30.3.2009, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



1. CGI -- название протокола, ,pl -- расшитение файла
2. похоже, у вас должно все исполняться из-под mod_perl
PM MAIL ICQ   Вверх
NuINu
Дата 30.3.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я видел как люди могут ходить без ноги, используюя различные костыли, но ни разу не видел чтобы нога ходила без людей.

вы пытаетесь сделать именно это - заставить ногу ходить без тела.

попробуйте сначала всю среду инициализировать и действовать в рамках ее интерфеса. может быть что нибудь получиться.
PM MAIL   Вверх
katyket
Дата 30.3.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


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

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


 




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


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

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