слишком много документации и сразу все не объять. с XS только начал разбираться, поэтому позадаю еще ламерских вопросов :)<br><br>создал с помощью h2xs каталог с проектом<br><br>h2xs -n MyModule<br><br>затем написал в MyModule/MyModule.xs две функции на C, которые я вызваю из тестов и <br>
make test делает все тесты.<br><br>то есть в тесте написано<br><br>use_ok &#39;MyModule&#39;;<br>my $result = MyModule::my_foo();<br>ok что-то с $result<br>и так далее.<br><br>из теста - работает.<br><br>теперь дошел до того что нужно над вызовом этих функций perl-обертку написать<br>
<br>соответственно полез редактировать файл lib/MyModule.pm.<br><br>там вроде все просто<br><br>написан автолоад констант (я их не использую) и сумарно следующее:<br><br>package MyModule;<br><br>use 5.010001;<br>use strict;<br>
use warnings;<br>use Carp;<br><br>require Exporter;<br>use AutoLoader;<br><br>our @ISA = qw(Exporter);<br>...<br>require XSLoader;<br>XSLoader::load(&#39;MyModule&#39;, $VERSION);<br><br>теперь я тут хочу вставить функцию, которая будет вызывать мою XS-ную функцию, пишу:<br>
<br>sub my_cool_foo<br>{<br>   $result = my_foo();<br>   ...<br>}<br><br>и вот тут при компиляции модуля ругается, что этой функции нет:<br><br>Bareword &quot;my_foo&quot; not allowed while &quot;strict subs&quot; in use at ...<br>
<br>и если даже указать полное имя пакета то все равно ругается.  и как обращаться к XS&#39;ным функциям изнутри модуля?<br><br>решил я вынести все XS&#39;ы в сабмодуль<br><br>то есть сделать чтобы<br><br>MyModule - был чистый перл, а он уже говорил<br>
use MyModule::XS;<br><br>и дергал из него функцию, но не пойму по документации что надо изменить в Makefile.PL чтобы тот мог собирать это. а переименование MyModule.xs в XS.xs и правка имен названий на добавление суффиксов ::XS приводит к какой-то ахинее.<br>
<br>где бы посмотреть примерчик проектика где бы было основной модуль на перле и дополнительный с суффиксом ::что-то на XS?<br>