O - Generic interface to Perl Compiler backends


SYNOPSIS

               perl -MO=Backend[,OPTIONS] foo.pl


DESCRIPTION

       This is the module that is used as a frontend to the Perl
       Compiler.


CONVENTIONS

       Most compiler backends use the following conventions:
       OPTIONS consists of a comma-separated list of words (no
       white-space).  The `-v' option usually puts the backend
       into verbose mode.  The `-ofile' option generates output
       to file instead of stdout. The `-D' option followed by
       various letters turns on various internal debugging flags.
       See the documentation for the desired backend (named
       `B::Backend' for the example above) to find out about that
       backend.


IMPLEMENTATION

       This section is only necessary for those who want to write
       a compiler backend module that can be used via this mod­
       ule.

       The command-line mentioned in the SYNOPSIS section corre­
       sponds to the Perl code

           use O ("Backend", OPTIONS);

       The `import' function which that calls loads in the appro­
       priate `B::Backend' module and calls the `compile' func­
       tion in that package, passing it OPTIONS. That function is
       expected to return a sub reference which we'll call CALL­
       BACK. Next, the "compile-only" flag is switched on (equiv­
       alent to the command-line option `-c') and a CHECK block
       is registered which calls CALLBACK. Thus the main Perl
       program mentioned on the command-line is read in, parsed
       and compiled into internal syntax tree form. Since the
       `-c' flag is set, the program does not start running
       (excepting BEGIN blocks of course) but the CALLBACK func­
       tion registered by the compiler backend is called.

       In summary, a compiler backend module should be called
       "B::Foo" for some foo and live in the appropriate direc­
       tory for that name.  It should define a function called
       `compile'. When the user types

           perl -MO=Foo,OPTIONS foo.pl

       that function is called and is passed those OPTIONS (split
       on commas). It should return a sub ref to the main

       and parsed, that returned sub ref is invoked which can
       then go ahead and do the compilation, usually by making
       use of the `B' module's functionality.


AUTHOR

       Malcolm Beattie, `mbeattie@sable.ox.ac.uk'


Man(1) output converted with man2html