Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > Perl

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 05.09.2003, 23:26
romatr вне форума Посмотреть профиль Отправить личное сообщение для romatr Найти все сообщения от romatr
  № 1  
romatr

Регистрация: Sep 2003
Сообщений: 4
По умолчанию require $some_var

Помогите, плиз, а то геморой замучил

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

Код:
#!/usr/bin/perl -U

use strict;
use File::Basename;

my $script_path = dirname($0);

my $ConfLib = $script_path.'/Conf.pm';
my $commoncliLib = $script_path.'/commoncli.pm';

require $ConfLib;
require $commoncliLib;
Он работает из шелла, а вот если запускаю его из ПХП командой exec() - "Segmentation fault"

Че может быть

Спасибки.

Старый 08.09.2003, 03:41
KarieZ(TM) вне форума Посмотреть профиль Отправить личное сообщение для KarieZ(TM) Найти все сообщения от KarieZ(TM)
  № 2  
KarieZ(TM)

Регистрация: Sep 2003
Сообщений: 5
в $0 у тебя попадет относительный путь к файлу
тоесть если perl-программа лежит в /home/ а php-скрипт в /home/1/ то в $0 ты получиш ./name.pl
где name.pl - имя файла.
а dirname возврашает "." (без кавычек)
даже не знаю... конечно можно решить всяким извратом через system, но нужно ли? =)... мой тебе совет - напиши пути в конфиг файле, как все нормальные люди
или запускай скрипт через веб, тогда у тебя в $ENV будет путь к скрипту ($ENV{SCRIPT_FILENAME})

Старый 08.09.2003, 12:27
romatr вне форума Посмотреть профиль Отправить личное сообщение для romatr Найти все сообщения от romatr
  № 3  
romatr

Регистрация: Sep 2003
Сообщений: 4
Уже все порешилось... Проблема была в том, что в подключаемом файле была директива use DBI, взяли перенесли ее в текущий файл и все заработало

Но все равно спасибки за совет


Последний раз редактировалось romatr; 08.09.2003 в 12:29.
Создать новую тему   Часовой пояс GMT +4, время: 19:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:15.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.