Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства является частью версии 5.0 Инструментов XCode

Получить эти инструменты:

Если Вы выполняете версию Инструментов XCode кроме 5,0, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.



Inline-FAQ(3)                        User Contributed Perl Documentation                       Inline-FAQ(3)



NAME
       Inline-FAQ - The Inline FAQ

DESCRIPTION
       Welcome to the official Inline FAQ. In this case, FAQ means:

           Formerly Answered Questions

       This is a collection of old, long-winded emails that myself and others have sent to the Inline
       mailing list. (inline@perl.org) They have been reviewed and edited for general Inline edification.
       Some of them may be related to a specific language. They are presented here in a traditional FAQ
       layout.

General Inline
       Since there is only a handful of content so far, all FAQs are currently under this heading.

   How disposable is a .Inline or _Inline directory?
       I probably need to be more emphatic about the roll of _Inline/ cache directories. Since they are
       created automatically, they are completely disposable. I delete them all the time. And it is fine to
       have a different one for each project. In fact as long as you don't have ~/.Inline/ defined, Inline
       will create a new ./_Inline directory. You can move that to ./.Inline and it will continue to work if
       you want to give it more longevity and hide it from view. There is a long complicated list of rules
       about how [_.]Inline/ directories are used/created. But it was designed to give you the most
       flexibility/ease-of-use. Never be afraid to nuke 'em. They'll just pop right back next time. :)

   Whatever happened to the SITE_INSTALL option?
       SITE_INSTALL is gone. I was going to leave it in and change the semantics, but thought it better to
       remove it, so people wouldn't try to use it the old way. There is now _INSTALL_ (but you're not
       supposed to know that :). It works magically through the use of Inline::MakeMaker. I explained this
       earlier but it's worth going through again because it's the biggest change for 0.40. Here's how to
       'permanently' install an Inline extension (Inline based module) with 0.40:

           1) Create a module with Inline.
           2) Test it using the normal/local _Inline/ cache.
           3) Create a Makefile.PL (like the one produced by h2xs)
           4) Change 'use ExtUtils::MakeMaker' to 'use Inline::MakeMaker'
           5) Change your 'use Inline C => DATA' to 'use Inline C => DATA => NAME
              => Foo => VERSION => 1.23'
           6) Make sure NAME matches your package name ('Foo'), or begins with
              'Foo::'.
           7) Make sure VERSION matches $Foo::VERSION. This must be a string (not a
              number) matching /^\d\.\d\d$/
           8) Do the perl/make/test/install dance (thanks binkley :)

       With Inline 0.41 (or thereabouts) you can skip steps 3 & 4, and just say 'perl -MInline=INSTALL
       ./Foo.pm'. This will work for non-Inline modules too. It will become the defacto standard (since
       there is no easy standard) way of installing a Perl module. It will allow Makefile.PL parameters
       'perl -MInline=INSTALL ./Foo.pm - PREFIX=/home/ingy/perl' and things like that. It will also make use
       of a MANIFEST if you provide one.

   How do I create a binary distribution using Inline?
       I've figured out how to create and install a PPM binary distribution; with or without distributing
       the C code! And I've decided to share it with all of you :)

       NOTE: Future versions of Inline will make this process a one line command. But for now just use this
       simple recipe.

       ---The --The

       The Inline 0.40 distribution comes with a sample extension module called Math::Simple. Theoretically
       you could distribute this module on CPAN. It has all the necessary support for installation. You can
       find it in Inline-0.40/modules/Math/Simple/. Here are the steps for converting this into a binary
       distribution *without* C source code.

       NOTE: The recipient of this binary distribution will need to have the PPM.pm module installed. This
       module requires a lot of other CPAN modules. ActivePerl (available for Win32, Linux, and Solaris) has
       all of these bundled. While ActivePerl isn't required, it makes things (a lot) easier.

       1) cd Inline-0.40/Math/Simple/

       2) Divide Simple.pm into two files:

           ---8<--- (Simple.pm)
           package Math::Simple;
           use strict;
           require Exporter;
           @Math::Simple::ISA = qw(Exporter);
           @Math::Simple::EXPORT = qw(add subtract);
           $Math::Simple::VERSION = '1.23';

           use Inline (C => 'src/Simple.c' =>
                       NAME => 'Math::Simple',
                       VERSION => '1.23',
                      );
           1;
           ---8<---
           ---8<--- (src/Simple.c)
           int add (int x, int y) {
               return x + y;
           }

           int subtract (int x, int y) {
               return x - y;
           }
           ---8<---

       So now you have the Perl in one file and the C in the other. The C code must be in a subdirectory.

       3) Note that I also changed the term 'DATA' to the name of the C file. This will work just as if the
       C were still inline.

       4) Run 'perl Makefile.PL'

       5) Run 'make test'

       6) Get the MD5 key from 'blib/arch/auto/Math/Simple/Simple.inl'

       7) Edit 'blib/lib/Math/Simple.pm'. Change 'src/Simple.c' to '02c61710cab5b659efc343a9a830aa73' (the
       MD5 key)

       8) Run 'make ppd'

       9) Edit 'Math-Simple.ppd'. Fill in AUTHOR and ABSTRACT if you wish. Then change:

           <CODEBASE HREF="" />

       to

           <CODEBASE HREF="Math-Simple.tar.gz" />

       10) Run:

           tar cvf Math-Simple.tar blib
           gzip --best Math-Simple.tar

       11) Run:

           tar cvf Math-Simple-1.23.tar Math-Simple.ppd Math-Simple.tar.gz
           gzip --best Math-Simple-1.23.tar

       12) Distribute Math-Simple-1.23.tar.gz with the following instructions:

       A) Run:

           gzip -d Math-Simple-1.23.tar.gz
           tar xvzf Math-Simple-1.23.tar

       B) Run 'ppm install Math-Simple.ppd'

       C) Delete Math-Simple.tar and Math-Simple.ppd.

       D) Test with:

           perl -MMath::Simple -le 'print add(37, 42)'

       ---That's --That's

       That's it. The process should also work with zip instead of tar, but I haven't tried it.

       The recipient of the binary must have Perl built with a matching architecture. Luckily, ppm will
       catch this.

       For a binary dist *with* C source code, simply omit steps 2, 3, 6, and 7.

       If this seems too hard, then in a future version you should be able to just type:

           make ppm



perl v5.12.5                                     2010-07-04                                    Inline-FAQ(3)

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации к проекту Perl. (См. perlbug (1) для инструкций представления.)
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API к Apple через Генератор отчетов Ошибки и к проекту Perl, использующему perlbug (1).
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.