Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Доступ к внутренним структурам Perl из скриптов


Автор: rommanio 6.3.2010, 17:40
доброго всем времени суток!

возник вопрос - возможно ли из скриптов Perl'a получить read/write access к внутренним его структурам (таким как SV)? Read-only получается с помощью модуля Devel::Peek, а вот read/write... Модули XSub писать самому... не то, поэтому я и спрашиваю. smile

Автор: arto 6.3.2010, 23:21
perldoc Inline::C ?

Автор: mvsgt 7.3.2010, 01:00
Может быть я не то понял что имел ввиду ТС (вообще надо сообщать об исходной задаче, а не о существовании пути решения неизвестно чего), но может быть поможет http://www.swig.org/ - почти автоматический генератор XS расширений для С кода. Например, для vgalib я когда-то сделал перловый интерфейс почти без дополнительных телодвижений.

SWIG is a programmer's tool designed to make it easier to use C and C++ code from other popular programming languages such as Python, Perl, Ruby, PHP, Java, and C#.

Автор: rommanio 7.3.2010, 09:00
Да  мне интересно, можно ли все-таки в пятом перле более точно определять тип переменной  (как это делается в шестом) smile Может быть я ошибаюсь, но помимо изменения структуры конкретного скаляра иных путей нет.

Автор: DurRandir 7.3.2010, 14:52
А ещё на шаг назад? Зачем вам потребовалось отличать число от строки? Я не могу в принципе представить себе, когда это могло бы понадобиться.  Да ещё и на уровне SV/NV.

Автор: Logo 7.3.2010, 15:09
В принципе может понадобится при использовании битовых операторов, таких как | &. 

Автор: DurRandir 7.3.2010, 15:45
Ну так явно привести к числу через (0+). Просто это не через XS делать надо. Внутри может лежать объект с переопределённым 0+, может лежать tied scalar - наружу всё это даёт число, а разбирать изнутри без знания XS "по-быстрому" - замечательный способ прострелить ногуsmile

Автор: rommanio 7.3.2010, 16:01
Не, ну мне чисто теоретически интересно, так сказать "интерес ради интереса" smile

Автор: mvsgt 7.3.2010, 16:36
Последнее время всё время вопросы про "интерес ради науки"...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)