[devel] Re: Requires для perl
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Ср Сен 14 12:14:44 MSD 2005
On Wed, Sep 14, 2005 at 11:49:56AM +0400, Vitaly Lipatov wrote:
> Может кто-нибудь подскажет -
> в начале программы такие строки:
>
> #!/usr/bin/perl
> use Gtk2 -init;
>
> При поиске зависимостей в конце сборки пакета идёт попытка
> инициализации Gtk2 с соответственно неудачным обращением к
> $DISPLAY. Вопрос - кто виноват?
> а) программа (возможно надо просто переписать инициализацию)
> б) поиск зависимостей
> До выяснения автопоиск я отключил :(
Программа. Поиск зависимостей не виноват, так как поиск зависимостей
в смысле исполнения кода эквивалентен syntax check.
$ perl -h |grep -e -c
-c check syntax only (runs BEGIN and CHECK blocks)
$
use Gtk2 -init; в точности эквивалентно
BEGIN { require Gtk2; Gtk2::->import(-init); }
(см. perldoc -f use)
То есть если сделать 'perl -c ПРОГРАММА' то будет такое же неудачное
обращение к $DISPLAY, как и при поиске зависимостей. Исполнять
прикладной код в BEGIN -- по-моему, очень плохая идея. Код в BEGIN
нужен только для импорта прототипов, перегрузки операторов и загрузки
лексических хинтов $^H (типа use strict).
Лучше вставить Gtk2->init в место фактической инициализации гуя у
программы, или же, если нет желания разбираться, где находится это
скорбное место, написать use Gtk2; INIT { Gtk2->init; }.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20050914/3ec26860/attachment-0001.bin>
Подробная информация о списке рассылки Devel