Описание тега perlapi
Вопрос, связанный с общедоступным API Perl
1
ответ
Почему обратный вызов не называется?
У меня есть пример сценария из модуля B:: OPCheck с измененным PL_op_name в padsv use B::Generate; use B::OPCheck padsv => check => sub { my $op = shift; print "HERE"; }; my $x; 1; Но обратный вызов не называется. При выходе из этой программы …
25 фев '17 в 11:57
3
ответа
Есть ли способ получить доступ к специальным токенам в Perl из XS?
В Perl специальные токены вроде __PACKAGE__, __SUB__, __FILE__, __LINE__ существует и доступен из скрипта. Я могу получить значение __PACKAGE__ от XS как HvNAME( PL_currstash ), Я полагаю.Но как получить доступ к другим? Есть ли специальный интерфей…
06 мар '17 в 15:50
0
ответов
Как использовать XSUB из другого модуля?
Я сейчас пишу XS модуль. И хочу повторно использовать функции из другого XS в Sub::Indentify, В случае обычного модуля Perl я могу сделать: use Sub::Identify; Sub::Identify::get_code_info( $code ); Как сделать то же самое из XS? UPD Я хочу позвонить…
18 янв '18 в 15:49
1
ответ
Как узнать текущее имя пакета из Perl XS?
Чтобы получить текущий контекст, я нахожу caller_cx функция в perlapi, Но нет описания для структуры. В исходном коде Perl perl.h Я могу найти только это typedef: typedef struct context PERL_CONTEXT; Есть ли примеры, как использовать эту структуру, …
01 мар '17 в 12:18
0
ответов
Не удается установить Perlapi больше?
Я пытаюсь выполнить шаги, чтобы исправить отключенную кнопку редактирования на Shutter, и для этого вам нужно установить libgoo-canvas-perl Я скачал его, но при установке я получаю: libgoo-canvas-perl: Depends: perlapi-5.22.1 but it is not installab…
04 дек '18 в 07:30
1
ответ
В чем разница между `GvNAME` и`GvENAME`?
В источниках Perl GvNAME а также GvENAME, Оба возвращают имя для данного gv, Но второе означает эффективное имя. Сбрасывать имена я не видел разницы. Может кто-нибудь прояснить разницу и привести пример, который это показывает? UPD Потому что это св…
19 янв '18 в 08:51
1
ответ
Как эмулировать вызов &sname из XS?
Как подражать z суб поведение внутри XS к югу? package XS; sub hello { print "ARGS: >>@_<<\n"; my $lvl; while( my @frame = caller( $lvl++ ) ) { print ">>@frame[0..4]<<\n"; } } sub z { &hello; } В моем .xs файл у меня есть…
19 янв '18 в 22:09
1
ответ
Как получить доступ к текущему контексту из XS?
Когда пользователь звонит XS от main:: пакет мы не можем использовать caller_cx(0, NULL); потому что нет рамок для main:: и для XSUB DOC Обратите внимание, что XSUB не получают стековый фрейм, поэтому C вернет информацию для непосредственно окружающ…
17 янв '18 в 11:17
1
ответ
Perl API Inline C: как получить подстроку строки байта Perl по ссылке, не копируя эту строку
Здравствуйте, сообщество. Надеюсь, я смогу встретиться здесь с некоторыми экспертами в области байтов Я думаю, SvPVbyte входит в игру, но как? Моя проблема. Я уже успешно проанализировал массив Perl XYZ (в пределах хэша массивов) с примером индекса …
02 авг '18 в 04:49
1
ответ
Где я могу найти типы операций, которые фильтруются PL_check?
PL_check переменная, предоставляемая общедоступным API Perl: Массив, проиндексированный с помощью кода операции, функций, которые будут вызываться для фазы проверки проверки построения дерева при компиляции кода Perl. Для большинства (но не для всех…
25 фев '17 в 19:22
1
ответ
Что означает флаг `pIOK`?
При сбросе Perl SV с Devel::Peek Я могу видеть: SV = IV(0x1c13168) at 0x1c13178 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 2 Но не могу найти описание, что pIOK имею в виду. Я пытался посмотреть на это Devel::Peek, perlapi, perlguts, perlxs... В источниках …
16 янв '18 в 09:19
0
ответов
Можно ли узнать, что `XSUB` был вызван с помощью`&sub`
Когда PP суб называется CX для этого саб создан. Получая доступ к этому контексту CxHASARGS(CX_CUR()) мы можем проверить этот саб hasargs или нет. Но для XSUB контекст не создан, поэтому мы не можем использовать этот трюк. Можно узнать XSUB был вызв…
21 янв '18 в 19:09
1
ответ
Должен ли я вызвать SvREFCNT_dec() для SV, который не будет возвращен Perl в стеке?
При вызове функции C из Perl, например, используя Inline::C: use feature qw(say); use strict; use warnings; use Inline C => './test.c'; say "Calling test().."; test(); say "Finished."; где test.c является: void test() { SV *sv_variable = newSVpv(…
25 фев '17 в 12:37
1
ответ
Отношения между MULTIPLICITY и PERL_IMPLICIT_CONTEXT
Какова связь между макросами Perl API MULTIPLICITY а также PERL_IMPLICIT_CONTEXT? Согласно с perlguts: Один макрос управляет основным видом сборки Perl: MULTIPLICITY, MULTIPLICITY build имеет структуру C, которая упаковывает все состояние интерпрета…
01 авг '19 в 12:03
1
ответ
Как установить переменную среды Perl из XSUB?
Я пытаюсь установить переменную среды Perl из XSUB. Я хочу, чтобы он вступил в силу немедленно до выхода из XSUB. Вот мой файл XS,Module.xs: #define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" MODULE = My::Module PACK…
07 фев '20 в 13:39