Ответ Морица объясняет дилемму IP5, но, к сожалению, недооценивает изобретательность Нинера.:)
Основываясь на моем понимании обмена информацией с Niner об этом, текущем IP5 README и обновлениях в ответе Джозефа, IP5 предоставляет четыре варианта.
Вызов P5 sub в списке context:
Inline::Perl5.new.call( 'subname', arg1, arg2 ... )
См. IP5: вызов функции Perl 5 .
Вызовите P5 sub in scalar context:
Inline::Perl5.new.run( 'subname arg1, arg2 ...' )
или
EVAL 'subname arg1, arg2 ...', :lang<Perl5>
См. IP5: запуск произвольного кода Perl 5 .
Вызов метода P5 в списке контекст:
Используйте обычный синтаксис P6:
$p5object.method( arg1, arg2 ... )
для вызова метода method
для объекта Perl 5, содержащегося в $p5object
, передавая ему arg1
и arg2
в качестве первогодва аргумента.
См. IP5: вызов метода для объекта Perl 5 .
Вызов метода P5 in скалярный контекст:
Используйте обычный синтаксис P6, но также вставьте Scalar
в качестве дополнительного первого позиционного аргумента:
$p5object.method( Scalar, arg1, arg2 ... )
для вызова метода method
вОбъект Perl 5 содержится в $p5object
, передавая ему arg1
и arg2
в качестве первых двух аргументов.
IP5 удаляет Scalar
перед вызовом метода Perl 5.
См. IP5: вызов метода в скалярном контексте .
Решение проблем со строками
Imo SO - идеальный способразработать базу знаний об использовании Inlines с P6.Следующее ни в коем случае не предназначено, чтобы препятствовать сообщениям.В самом деле, если вы решите проблему без размещения SO о ней, рассмотрите возможность зайти сюда, чтобы опубликовать вопрос и ответить на пару, документирующую ее.
(культура SO полностью поддерживает такую публикацию вв общем случае, когда один и тот же человек отправляет и вопрос, и ответ и принимает их ответ, но я думаю, что он особенно подходит для тега [perl6] и вдвойне для проблем и решаемых проблем, связанных с Inlines.)
С помощьюОтказавшись от этого, см. также разделы, начинающиеся с Что ожидать при использовании адаптеров для иностранных языков из Мой ответ на Perl6: получение ссылки на массив для модуля Perl5 длямоя попытка найти мини-руководство по решению подобных проблем с P6 Inlines.Это всего лишь первая попытка, и я хотел бы получить обратную связь, особенно о проблемах с ней, поэтому, если вы прочитаете ее, пожалуйста, рассмотрите возможность комментирования там, если какое-либо руководство кажется слишком большим, слишком маленьким или слишком запутанным в каком-либо отношении.ТИА.