This is Info file pm.info, produced by Makeinfo version 1.68 from the input file bigpm.texi.  File: pm.info, Node: Aviation/Report, Next: Aw, Prev: AutoSplit, Up: Module List Perl extension for translating U.S. METAR, TAF and PIREP textual reports into plain English. ******************************************************************************************** NAME ==== Aviation::Report - Perl extension for translating U.S. METAR, TAF and PIREP textual reports into plain English. SYNOPSIS ======== use strict; use Aviation::Report; print decode_METAR_TAF(report, style); print decode_PIREP(report, style); DESCRIPTION =========== Translates U.S. METAR, TAF and PIREP text reports into plain English. Although the syntax of these reports is standardized, it is not as obvious as it first appears to make correct translations. The style option controls the final appearance. A style of 0 emits only plain English, while 1 includes the original tokens for reference purposes. AUTHOR ====== James Briggs <71022.3700@compuserve.com> SEE ALSO ======== METAR.pm by Jeremy Zawodny  File: pm.info, Node: Aw, Next: Aw/Adapter, Prev: Aviation/Report, Up: Module List Perl extension for the ActiveWorks C Application Development Kit **************************************************************** NAME ==== Aw - Perl extension for the ActiveWorks C Application Development Kit SYNOPSIS ======== use Aw; require Aw::Adapter; require Aw::Event; my $adapter = new Aw::Adapter ( "3.0", ) ; my $event = new Aw::Event; DESCRIPTION =========== A Java like interface to the CADK thru Perl. Exported Constants ================== Everything in the CADK include files should be exported as constants. AUTHOR ====== Daniel Yacob Mekonnen, `Yacob@RCN.Com|mailto:Yacob@RCN.Com' in this node SEE ALSO ======== perl(1). ActiveWorks Supplied Documentation  File: pm.info, Node: Aw/Adapter, Next: Aw/Client, Prev: Aw, Up: Module List ActiveWorks Adapter Module. *************************** NAME ==== Aw::Adapter - ActiveWorks Adapter Module. SYNOPSIS ======== require Aw::Adapter; my $adapter = new Aw::Adapter; DESCRIPTION =========== Enhanced interface for the Aw.xs Adapter methods. AUTHOR ====== Daniel Yacob Mekonnen, `Yacob@RCN.Com|mailto:Yacob@RCN.Com' in this node SEE ALSO ======== perl(1). Aw(3).  File: pm.info, Node: Aw/Client, Next: Aw/ClientX, Prev: Aw/Adapter, Up: Module List ActiveWorks Client Module. ************************** NAME ==== Aw::Client - ActiveWorks Client Module. SYNOPSIS ======== require Aw::Client; my $client = new Aw::Client; DESCRIPTION =========== Enhanced interface for the Aw.xs Client methods. AUTHOR ====== Daniel Yacob Mekonnen, `Yacob@RCN.Com|mailto:Yacob@RCN.Com' in this node SEE ALSO ======== perl(1). Aw(3).  File: pm.info, Node: Aw/ClientX, Next: Aw/ConnectionDescriptor, Prev: Aw/Client, Up: Module List ActiveWorks Client Module. ************************** NAME ==== Aw::Client - ActiveWorks Client Module. SYNOPSIS ======== require Aw::Client; my $client = new Aw::Client; DESCRIPTION =========== Demonstative module that allows for a blessed hash to act as a client. AUTHOR ====== Daniel Yacob Mekonnen, `Yacob@RCN.Com|mailto:Yacob@RCN.Com' in this node SEE ALSO ======== perl(1). Aw(3).  File: pm.info, Node: Aw/ConnectionDescriptor, Next: Aw/Event, Prev: Aw/ClientX, Up: Module List ActiveWorks Connection Descriptor Module. ***************************************** NAME ==== Aw::ConnectionDescriptor - ActiveWorks Connection Descriptor Module. SYNOPSIS ======== require Aw::ConnectionDescriptor; my $cd = new Aw::ConnectionDescriptor; DESCRIPTION =========== Enhanced interface for the Aw.xs Connection Descriptor methods. AUTHOR ====== Daniel Yacob Mekonnen, `Yacob@RCN.Com|mailto:Yacob@RCN.Com' in this node SEE ALSO ======== perl(1). Aw(3).  File: pm.info, Node: Aw/Event, Next: Aw/License, Prev: Aw/ConnectionDescriptor, Up: Module List ActiveWorks Event Module. ************************* NAME ==== Aw::Event - ActiveWorks Event Module. SYNOPSIS ======== require Aw::Event; my $event = new Aw::Event; DESCRIPTION =========== Enhanced interface for the Aw.xs Event methods. AUTHOR ====== Daniel Yacob Mekonnen, `Yacob@RCN.Com|mailto:Yacob@RCN.Com' in this node SEE ALSO ======== perl(1). Aw(3).  File: pm.info, Node: Aw/License, Next: Aw/Log, Prev: Aw/Event, Up: Module List ActiveWorks License Module. *************************** NAME ==== Aw::License - ActiveWorks License Module. SYNOPSIS ======== require Aw::License; my $typeDef = new Aw::License; DESCRIPTION =========== Enhanced interface for the Aw.xs License methods. AUTHOR ====== Daniel Yacob Mekonnen, `Yacob@RCN.Com|mailto:Yacob@RCN.Com' in this node SEE ALSO ======== perl(1). Aw(3).  File: pm.info, Node: Aw/Log, Next: Aw/TypeDef, Prev: Aw/License, Up: Module List ActiveWorks Log Module. *********************** NAME ==== Aw::Log - ActiveWorks Log Module. SYNOPSIS ======== require Aw::Log; my $typeDef = new Aw::Log; DESCRIPTION =========== Enhanced interface for the Aw.xs Log methods. AUTHOR ====== Daniel Yacob Mekonnen, `Yacob@RCN.Com|mailto:Yacob@RCN.Com' in this node SEE ALSO ======== perl(1). Aw(3).  File: pm.info, Node: Aw/TypeDef, Next: Aw/Util, Prev: Aw/Log, Up: Module List ActiveWorks TypeDef Module. *************************** NAME ==== Aw::TypeDef - ActiveWorks TypeDef Module. SYNOPSIS ======== require Aw::TypeDef; my $typeDef = new Aw::TypeDef; DESCRIPTION =========== Enhanced interface for the Aw.xs TypeDef methods. AUTHOR ====== Daniel Yacob Mekonnen, `Yacob@RCN.Com|mailto:Yacob@RCN.Com' in this node SEE ALSO ======== perl(1). Aw(3).  File: pm.info, Node: Aw/Util, Next: AxKit, Prev: Aw/TypeDef, Up: Module List ActiveWorks Connection Descriptor Module. ***************************************** NAME ==== Aw::Util - ActiveWorks Connection Descriptor Module. SYNOPSIS ======== require Aw::Util; my $cd = new Aw::Util; DESCRIPTION =========== Enhanced interface for the Aw.xs Connection Descriptor methods. AUTHOR ====== Daniel Yacob Mekonnen, `Yacob@RCN.Com|mailto:Yacob@RCN.Com' in this node SEE ALSO ======== perl(1). Aw(3).  File: pm.info, Node: AxKit, Next: AxKit/XSP/ESQL, Prev: Aw/Util, Up: Module List an XML Delivery Toolkit for Apache ********************************** NAME ==== AxKit - an XML Delivery Toolkit for Apache DESCRIPTION =========== AxKit provides the user with an application development environment for mod_perl, using XML, Stylesheets and a few other tricks. See http://axkit.org/ for details. SYNOPSIS ======== In httpd.conf: # we add custom configuration directives # so this *must* be in httpd.conf outside of # all request based conditionals PerlModule AxKit Then in any Apache configuration section (Files, Location, Directory, .htaccess): # Install AxKit main parts SetHandler perl-script PerlHandler AxKit # Setup style type mappings AxAddStyleMap text/xsl Apache::AxKit::Language::Sablot AxAddStyleMap application/x-xpathscript \ Apache::AxKit::Language::XPathScript # Optionally set a hard coded cache directory # make sure this is writable by nobody AxCacheDir /opt/axkit/cachedir # turn on debugging (1 - 10) AxDebugLevel 5 Now simply create xml files with stylesheet declarations: This is my test XML file. And for the above, create a stylesheet in the same directory as the file called "test.xsl" that compiles the XML into something usable by the browser. If you wish to use other languages than XSLT, you can, provided a module exists for that language. BUILD PROBLEMS ============== If you have trouble compiling AxKit, or apache fails to start after installing, it's possible to use AxKit without the built in configuration directives (which have been known to generate segfaults). To do this install as follows: perl Makefile.PL NO_DIRECTIVES=1 make make test make install UNINST=1 This removes the custom configuration directives. Note that the UNINST=1 is required to make sure that old AxKit files are removed from the binary directory (since it has no binary component any more). Now you can change the directives to ordinary PerlSetVar directives: PerlSetVar AxStyleMap "text/xsl => Apache::AxKit::Language::XSLT, \ application/x-xpathscript => Apache::AxKit::Language::XPathScript" PerlSetVar AxCacheDir /opt/axkit/cache It's worth noting that the PerlSetVar option is available regardless of whether you compile with NO_DIRECTIVES set, although it is marginally slower to use PerlSetVar. Also note that if you go back to using the compiled directives, you must again install with UNINST=1. CONFIGURATION DIRECTIVES ======================== AxKit installs a number of new first class configuration directives for you to use in Apache's httpd.conf or .htaccess files. These provide very fine grained control over how AxKit performs transformations and sends its output to the user. Each directive below is listed along with how to use that directive with NO_DIRECTIVES=1 (i.e. via PerlSetVar). AxCacheDir ---------- This option takes a single argument, and sets the directory that the cache module stores its files in. These files are an MD5 hash of the file name and some other information. Make sure the directory you specify is writable by either the nobody user or the nobody group (or whatever user your Apache servers run as). It is probably best to not make these directories world writable! AxCacheDir /tmp/axkit_cache or PerlSetVar AxCacheDir /tmp/axkit_cache AxDebugLevel ------------ If present this makes AxKit send output to Apache's error log. The valid range is 0-10, with 10 producing more output. We recommend not to use this option on a live server. AxDebugLevel 5 or PerlSetVar AxDebugLevel 5 AxGzipOutput ------------ This allows you to use the Compress::Zlib module to gzip output to browsers that support gzip compressed pages. It uses the Accept-Encoding HTTP header and some information about User agents who can support this option but don't correctly send the Accept-Encoding header. This option allows either On or Off values (default being Off). This is very much worth using on sites with mostly static pages because it reduces outgoing bandwidth significantly. AxGzipOutput On or PerlSetVar AxGzipOutput 1 AxTranslateOutput ----------------- This option enables output character set translation. The default method is to detect the appropriate character set from the user agent's Accept-Charset HTTP header, but you can also hard-code an output character set using AxOutputCharset (see below). AxTranslateOutput On or PerlSetVar AxTranslateOutput 1 AxOutputCharset --------------- Fix the output character set, rather than using either UTF-8 or the user's preference from the Accept-Charset HTTP header. If this option is present, all output will occur in the chosen character set. The conversion uses the iconv library, which is part of GNU glibc and/or most modern Unixes. It is recommended to not use this option if you can avoid it. This option is only enable if you also enable AxTranslateOutput. AxOutputCharset iso-8859-1 or PerlSetVar AxOutputCharset iso-8859-1 AxErrorStylesheet ----------------- If an error occurs during processing that throws an exception, the exception handler will try and find an ErrorStylesheet to use to process XML of the following format: /usr/htdocs/xml/foo.xml Something bad happened /usr/lib/perl/site/AxKit.pm 342 There may potentially be multiple bt tags. If an exception occurs when the error stylesheet is transforming the above XML, then a SERVER ERROR will occur and an error written in the Apache error log. AxErrorStylesheet text/xsl /stylesheets/error.xsl or PerlSetVar AxErrorStylesheet "text/xsl => /stylesheets/error.xsl" AxAddXSPTaglib -------------- XSP supports two types of tag libraries. The simplest type to understand is merely an XSLT or XPathScript (or other transformation language) stylesheet that transforms custom tags into the "raw" XSP tag form. However there is another kind, that is faster, and these taglibs transform the custom tags into pure code which then gets compiled. These taglibs must be loaded into the server using the AxAddXSPTaglib configuration directive. # load the SQL taglib AxAddXSPTaglib Apache::AxKit::Language::XSP::SQL AxAddXSPTaglib Apache::AxKit::Language::XSP::Util or PerlSetVar AxAddXSPTaglibs \ Apache::AxKit::Language::XSP::SQL \ Apache::AxKit::Language::XSP::Util AxStyle ------- A default stylesheet title to use. This is useful when a single XML resource maps to multiple choice stylesheets. One possible way to use this is to symlink the same file in different directories with .htaccess files specifying different AxStyle directives. AxStyle "My custom style" or PerlSetVar AxPreferredStyle "My custom style" AxMedia ------- Very similar to the previous directive, this sets the media type. It is most useful in a .htaccess file where you might have an entire directory for the media "handheld". AxMedia tv or PerlSetVar AxPreferredMedia tv AxAddStyleMap ------------- This is one of the more important directives. It is responsible for mapping module stylesheet MIME types to stylesheet processor modules (the reason we do this is to make it easy to switch out different modules for the same functionality, for example different XSLT processors). AxAddStyleMap text/xsl Apache::AxKit::Language::Sablot AxAddStyleMap application/x-xpathscript \ Apache::AxKit::Language::XPathScript AxAddStyleMap application/x-xsp \ Apache::AxKit::Language::XSP or PerlSetVar AxStyleMap \ "text/xsl => Apache::AxKit::Language::Sablot, \ application/x-xpathscript => Apache::AxKit::Language::XPathScript, \ application/x-xsp => Apache::AxKit::Language::XSP" AxResetStyleMap --------------- Since the style map will continue deep into your directory tree, it may occasionally be useful to reset the style map (I don't have an example usage of this at this time). # option takes no arguments. AxResetStyleMap or PerlSetVar AxStyleMap "" Note that the PerlSetVar version of resetting the style map does not work with the custom directive version of AxAddStyleMap and vice versa. AxAddProcessor -------------- This directive maps all XML files to a particular stylesheet to be processed with. You can do this in a directive if you need to do it by file extension: AxAddProcessor text/xsl /stylesheets/docbook.xsl Multiple directives for the same set of files make for a chained set of stylesheet processing instructions, where the output of one processing stage goes into the input of the next. This is especially useful for XSP processing, where the output of the XSP processor will likely not be HTML (or WAP or whatever your chosen output format is): # use "." to indicate that XSP gets processed by itself. AxAddProcessor application/x-xsp . AxAddProcessor text/xsl /stylesheets/to_html.xsl There is no PerlSetVar equivalent of this directive. AxAddDocTypeProcessor --------------------- This allows you to map all XML files conforming to a particular XML public identifier in the document's DOCTYPE declaration, to the specified stylesheet(s): AxAddDocTypeProcessor text/xsl /stylesheets/docbook.xsl \ "-//OASIS//DTD DocBook XML V4.1.2//EN" There is no PerlSetVar equivalent of this directive. AxAddDTDProcessor ----------------- This allows you to map all XML files that specify the given DTD file or URI in the SYSTEM identifier to be mapped to the specified stylesheet(s): AxAddDTDProcessor text/xsl /stylesheets/docbook.xsl \ /dtds/docbook.dtd There is no PerlSetVar equivalent of this directive. AxAddRootProcessor ------------------ This allows you to map all XML files that have the given root element to be mapped to the specified stylesheet(s): AxAddRootProcessor text/xsl /stylesheets/book.xsl book Namespaces are fully supported via the following syntax: AxAddRootProcessor text/xsl /stylesheets/homepage.xsl \ {http://myserver.com/NS/homepage}homepage This syntax was taken from James Clark's Introduction to Namespaces article. There is no PerlSetVar equivalent of this directive. AxResetProcessors ----------------- This allows you to reset the processor mappings at from the current directory level down. AxResetProcessors From this directory down you can completely redefine how certain types of files get processed by AxKit. ------------- This is a configuration directive block. It allows you to have finer grained control over the mappings, by specifying that the mappings (which have to be specified using the 4 directives above) contained within the block are only relevant when the requested media type is as specified in the block parameters: AxAddProcessor text/xsl /stylesheets/webpage_screen.xsl AxAddProcessor text/xsl /stylesheets/webpage_wap.xsl AxAddProcessor text/xsl /stylesheets/webpage_tv.xsl There is no PerlSetVar equivalent of this directive block. ------------- This configuration directive block is very similar to the above, only it specifies alternate stylesheets by name, which can be then requested via a StyleChooser: AxAddProcessor text/xsl /styles/webpage_screen.xsl AxAddProcessor text/xsl /styles/webpage_printable.xsl This and the above directive block can be nested, and can also be contained within directives to give you even more control over how your XML is transformed. There is no PerlSetVar equivalent of this directive block. CUSTOMISING AXKIT ================= There are some configuration directives that are specifically reserved for customising how AxKit works. These directives allow you to specify a new class to replace the one being used for certain operations. These directives all take as a single argument, the name of a module to load in place of the default. They are: AxConfigReader AxProvider AxCacheModule The ConfigReader module returns information about various configuration options. Currently it takes most of its information from the above mentioned configuration directives, or from PerlSetVar. The Provider module is the means by which AxKit gets its resources from. The default Provider simply picks up files from the filesystem, but alternate providers could pull the information from a DBMS, or perhaps create some XML structure for directories. There currently exists one alternate Provider module, which allows AxKit to work as a recipient for Apache::Filter output. This module is Apache::AxKit::Provider::Filter. The Cache module is responsible for storing cache data for later retrieval. Implementing these is non trivial, and it is highly recommended to join the AxKit-devel mailing list before venturing to do so, and to also consult the source for the current default modules. Details of joining the mailing list are at http://axkit.org/mailinglist.xml KNOWN BUGS ========== There are currently some incompatibilities between the versions of expat loaded by Apache when compiled with RULE_EXPAT=yes (which is a default, unfortunately), and XML::Parser's copy of expat. This can cause sporadic segmentation faults in Apache's httpd processes. The solution is to recompile Apache with RULE_EXPAT=no. If you have a recent mod_perl and use mod_perl's Makefile.PL to compile Apache for you, this option will be enabled automatically for you. There are a number of known bugs in XSP at this time. This is being re-written to use SAX2, and so we are not focusing on fixing these bugs until the re-write is further down the line. AUTHOR and LICENSE ================== AxKit is developed by AxKit.com Ltd. See http://axkit.com/ for more details. AxKit is licensed under either the GNU GPL Version 2, or the Perl Artistic License. Copyright AxKit.com, 2000. MORE DOCUMENTATION ================== For more documentation on things like XPathScript, XSP and XSLT, and a quick getting started guide, please visit our community web site at http://axkit.org/ SEE ALSO ======== *Note Apache/AxKit/Plugins/Fragment: Apache/AxKit/Plugins/Fragment,, *Note Apache/AxKit/Plugins/Passthru: Apache/AxKit/Plugins/Passthru,, *Note Apache/AxKit/StyleChooser/QueryString: Apache/AxKit/StyleChooser/QueryString,, *Note Apache/AxKit/StyleChooser/UserAgent: Apache/AxKit/StyleChooser/UserAgent,, *Note Apache/AxKit/StyleChooser/PathInfo: Apache/AxKit/StyleChooser/PathInfo,, *Note Apache/AxKit/StyleChooser/FileSuffix: Apache/AxKit/StyleChooser/FileSuffix,, *Note Apache/AxKit/StyleChooser/Cookie: Apache/AxKit/StyleChooser/Cookie,, `Apache::AxKit::MediaChooser::WAPCheck' in this node, *Note Apache/AxKit/Provider: Apache/AxKit/Provider,, `Apache::AxKit::Provider::Filter' in this node, `Apache::AxKit::Provider::File' in this node, `Apache::AxKit::Provider::Scalar' in this node (and probably others I have forgotten about)  File: pm.info, Node: AxKit/XSP/ESQL, Next: AxKit/XSP/Exception, Prev: AxKit, Up: Module List An Extended SQL taglib for AxKit eXtensible Server Pages ******************************************************** NAME ==== AxKit::XSP::ESQL - An Extended SQL taglib for AxKit eXtensible Server Pages SYNOPSIS ======== Add the esql: namespace to your XSP ` tag: And add this taglib to AxKit (via httpd.conf or .htaccess): AxAddXSPTaglib AxKit::XSP::ESQL DESCRIPTION =========== This tag library provides extensive support for executing SQL statements from within XSP. This tag library is the same as the Cocoon ESQL taglib. TAG REFERENCE ============= Note that below we use the esql: prefix as a convention, however you can use whatever prefix you like provided it is mapped to the appropriate namespace. ` ------------------- parent: none This is the required 'wrapper' element that declares your connection. ` --------------- parent: The contents of this element define the DBI driver to be used. For example, Pg, Sybase, Oracle. ` -------------- parent: The name of this tag is a hang-over from the Cocoon (Java) version. In the AxKit version this is simply anything that goes after the driver in the connection string. So for PostgreSQL you might have in here `dbname=axkit', to connect to the "axkit" database. The full connect string is constructed as follows: "dbi:$driver" . ($dburl ? ":$dburl" : "") See your DBD driver documentation for more details on what is valid for the connection string. ` ----------------- parent: The username to connect to the database with. ` ----------------- parent: The password to use to connect to the database. ` ---------------------- parent: This tag is a 'wrapper' tag around queries. You may have as many queries as you like within a single ` tag. ` ------------------ parent: The contents of this tag (which may be an ) define a number of rows to skip forward in the result set. ` ----------------- parent: The maximum number of rows to return. ` -------------- parent: The contents of this tag define the query to be executed. ` ------------------ parent: This tag can be put in your SQL query everywhere you might put a ? in your SQL in DBI. ESQL is intelligent enough to create a cached statement when you do this, and only execute your code when necessary. You put an expression (or another taglib) within the parameter tag (see the example below). ` ---------------- parent: The contents of this tag are "executed" whenever the query returns some results. ` -------------------- parent: The contents of this tag are "executed" for each row of the results ` -------------------- parent: This tag gets all of the columns in the current row, and outputs them as ``value. If you specify an attribute `tag-case="upper"', all columns are upper case. Alternatively, "lower" gives you all tags in lower case. An ancestor attribute is also allowed, see "Nested Results" below for more details. get-* ----- parent: These are: get-column get-string get-boolean get-double get-float get-int get-long get-short (and more below) Each of these takes either an attribute column="name", or a child tag, ` which gives the column name. Alternatively either the attribute or child element can be an integer (starting at 1) specifying the column number. Also allowed is an ancestor attribute, which is an integer (default 0), which indicates how far up the nested results you go. See Nested Results below. `, `, ` ------------------------------------------------------------ parent: These tags are the same as get-* above, except they also take a `format="..."' attribute, which contains a strftime formatting string. ` ---------------- parent: Again the same as get-* above. This tag assumes the contents of the column are valid XML, and appends that XML into the result tree. ` ------------------------- parent: Gets the current row number. Optional `ancestor' attribute. ` ------------------------ parent: Gets the column name indicated by the numbered column in the `column="..."' attribute, or the child ` element. The attribute/child can actually be a string (name), but then what is the point of that? ` ------------------------- parent: Gets the label of the column. This is a hang-over from the Cocoon java implementation where sadly nobody seems to know what label is compared with name. In this case, get-column-name is always lower case, whereas get-column-label is returned in the case that the DBD driver returns it as. ` ----------------------------- parent: Returns the TYPE_NAME of the column indicated as other get-* elements. See the DBI docs for more details. ` ------------------- parent: The contents of this element are executed when the SQL returned no rows. ` ----------------------- parent: The contents of this element are executed when the SQL was an update statement. The number of rows updated are in the $rv variable. Nested Results ============== With the ESQL taglib it is quite possible to do nested results. This is a way to emulate outer joins, or just better organise things. See below for an example of this. When using nested results, you can use the ancestor attribute on any of the get-* elements to get results from higher up the ancestry of results. Errors ====== Unlike the original Cocoon version of this taglib, we let you handle errors however you choose to, using the exception taglib. If an error occurs, ESQL will throw an exception. If you don't capture this exception it will propogate up to the core of AxKit, and either give a 500 internal server error, or execute the AxErrorStylesheet if one is defined. See *Note AxKit: AxKit,. EXAMPLE ======= Pg dbname=axkit postgres select id,name from department_table where foo = 4 + 5
header info
org.postgresql.Driver jdbc:postgresql://localhost/test test test select name from user_table where department_id = No employees
footer info
No departments
AUTHOR ====== Matt Sergeant, matt@axkit.com. Original Cocoon taglib by Donald Ball COPYRIGHT ========= Copyright 2001 AxKit.com Ltd. You may use this module under the same terms as AxKit itself. SEE ALSO ======== *Note AxKit: AxKit,, `DBI' in this node, *Note Apache/AxKit/Language/XSP: Apache/AxKit/Language/XSP,, the AxKit.org pages at http://axkit.org/  File: pm.info, Node: AxKit/XSP/Exception, Next: AxKit/XSP/Param, Prev: AxKit/XSP/ESQL, Up: Module List Exceptions taglib for eXtensible Server Pages ********************************************* NAME ==== AxKit::XSP::Exception - Exceptions taglib for eXtensible Server Pages SYNOPSIS ======== Add the sendmail: namespace to your XSP ` tag: And add this taglib to AxKit (via httpd.conf or .htaccess): AxAddXSPTaglib AxKit::XSP::Exception DESCRIPTION =========== Allows you to catch exceptions thrown by either your own code, or other taglibs. EXAMPLE ======= This example shows all the tags in action: ...

An Error occured:

AUTHOR ====== Matt Sergeant, matt@axkit.com COPYRIGHT ========= Copyright (c) 2001 AxKit.com Ltd. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO ======== AxKit  File: pm.info, Node: AxKit/XSP/Param, Next: AxKit/XSP/Sendmail, Prev: AxKit/XSP/Exception, Up: Module List A namespace wrapper for accessing HTTP request paramaters. ********************************************************** NAME ==== AxKit::XSP::Param - A namespace wrapper for accessing HTTP request paramaters. SYNOPSIS ======== Add the param: namespace to your XSP ` tag: And add the taglib to AxKit (via httpd.conf or .htaccess): AxAddXSPTaglib AxKit::XSP::Param DESCRIPTION =========== The XSP param: tag library implements a simple way to access HTTP request parameters (query string and posted form data) by field name. Thus, the value submitted from this text box is available after POSTing as The same is true for information passed through the query string. The best way to describe this taglib's use is with a few examples: *Simple inline text insertion* -

Greetings, , welcome to our site!

*As the contents of another element* - *As the attribute value for another elememnt* - Note that if the specified parameter field does not exist no error is thrown. So, this: Will result in following after proccessing: Tag Reference ------------- There are no named functions for this tag library. AUTHOR ====== Kip Hampton, khampton@totalcinema.com COPYRIGHT ========= Copyright (c) 2001 Kip Hampton. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO ======== AxKit  File: pm.info, Node: AxKit/XSP/Sendmail, Next: AxKit/XSP/Util, Prev: AxKit/XSP/Param, Up: Module List Simple SMTP mailer tag library for AxKit eXtesible Server Pages. **************************************************************** NAME ==== AxKit::XSP::Sendmail - Simple SMTP mailer tag library for AxKit eXtesible Server Pages. SYNOPSIS ======== Add the sendmail: namespace to your XSP ` tag: And add this taglib to AxKit (via httpd.conf or .htaccess): AxAddXSPTaglib AxKit::XSP::Sendmail DESCRIPTION =========== The XSP sendmail: taglib adds a simple SMTP mailer to XSP via Milivoj Ivkovic's platform-neutral Mail::Sendmail module. In addition, all email addresses are validated before sending using Maurice Aubrey's Email::Valid package. This taglib is identical to the Cocoon taglib of the same name, albeit in a different namespace.. Tag Reference ============= ` ---------------------- This is the required 'wrapper' element for the sendmail taglib branch. ` --------------------- The this element sets the outgoing SMTP server for the current message. If ommitted, the default set in Mail::Sendmail's %mailcfg hash will be used instead. ` ----------------- Defines the 'From' field in the outgoing message. If ommited, this field defaults to value set in Mail::Sendmail's %mailcfg hash. Run `perldoc Mall:Sendmail' for more detail. ` --------------- Defines a 'To' field in the outgoing message. Multiple instances are allowed. ` --------------- Defines a 'Cc' field in the outgoing message. Multiple instances are allowed. ` ---------------- Defines a 'Bcc' field in the outgoing message. Multiple instances are allowed. ` ----------------- Defines the body of the outgoing message. EXAMPLE ======= my $mail_message = 'I'm a victim of circumstance!'; curly@localhost moe@spreadout.org larry@porcupine.com shemp@alsoran.net $mail_message ERRORS ====== When sending email fails, or an address is invalid, this taglib will throw an exception, which you can catch with the AxKit exceptions taglib. AUTHOR ====== Kip Hampton, khampton@totalcinema.com COPYRIGHT ========= Copyright (c) 2001 Kip Hampton. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO ======== AxKit, Mail::Sendmail, Email::Valid  File: pm.info, Node: AxKit/XSP/Util, Next: B, Prev: AxKit/XSP/Sendmail, Up: Module List XSP util: taglib. ***************** NAME ==== AxKit::XSP::Util - XSP util: taglib. SYNOPSIS ======== Add the util: namespace to your XSP ` tag: And add this taglib to AxKit (via httpd.conf or .htaccess): AxAddXSPTaglib AxKit::XSP::Util DESCRIPTION =========== The XSP util: taglib seeks to add a short list of basic utility functions to the eXtesible Server Pages library. It trivializes the inclusion of external fragments and adds a few other useful bells and whistles. TAG STRUCTURE ============= Most of of the tags require some sort of "argument" to be passed (e.g. ` requires the name of the file that is to be read). Unless otherwise noted, all tags allow you to pass this information either as an attribute of the current element or as the text node of an appropriately named child. Thus, both: and foo.xml are valid. TAG REFERENCE ============= ` --------------------- Provides a way to include an XML fragment from a local file into the current parse tree. Requires a name argument. The path may be relative or absolute. ` -------------------- Provides a way to include an XML fragment from a (possibly) remote URI. Requires an href argument. ` -------------------------- Provides a way to include a local file *as plain text*. Requires a name argument. The path may be relative or absolute. ` --------------------- Provides a way to include an XML fragment from a scalar variable. Note that this tag may *only* pass the required *expr* argument as a child node. Example: $xml_fragment ` ------------- Returns a formatted time/date string. Requires a format attribute. The format is defined using the standard strftime() syntax. AUTHOR ====== Kip Hampton, khampton@totalcinema.com SEE ALSO ======== AxKit.  File: pm.info, Node: B, Next: B/Asmdata, Prev: AxKit/XSP/Util, Up: Module List The Perl Compiler ***************** NAME ==== B - The Perl Compiler SYNOPSIS ======== use B; DESCRIPTION =========== The B module supplies classes which allow a Perl program to delve into its own innards. It is the module used to implement the "backends" of the Perl compiler. Usage of the compiler does not require knowledge of this module: see the O module for the user-visible part. The B module is of use to those who want to write new compiler backends. This documentation assumes that the reader knows a fair amount about perl's internals including such things as SVs, OPs and the internal symbol table and syntax tree of a program. OVERVIEW OF CLASSES =================== The C structures used by Perl's internals to hold SV and OP information (PVIV, AV, HV, ..., OP, SVOP, UNOP, ...) are modelled on a class hierarchy and the B module gives access to them via a true object hierarchy. Structure fields which point to other objects (whether types of SV or types of OP) are represented by the B module as Perl objects of the appropriate class. The bulk of the B module is the methods for accessing fields of these structures. Note that all access is read-only: you cannot modify the internals by using this module. SV-RELATED CLASSES ------------------ B::IV, B::NV, B::RV, B::PV, B::PVIV, B::PVNV, B::PVMG, B::BM, B::PVLV, B::AV, B::HV, B::CV, B::GV, B::FM, B::IO. These classes correspond in the obvious way to the underlying C structures of similar names. The inheritance hierarchy mimics the underlying C "inheritance". Access methods correspond to the underlying C macros for field access, usually with the leading "class indication" prefix removed (Sv, Av, Hv, ...). The leading prefix is only left in cases where its removal would cause a clash in method name. For example, GvREFCNT stays as-is since its abbreviation would clash with the "superclass" method REFCNT (corresponding to the C function SvREFCNT). B::SV METHODS ------------- REFCNT FLAGS B::IV METHODS ------------- IV IVX needs64bits packiv B::NV METHODS ------------- NV NVX B::RV METHODS ------------- RV B::PV METHODS ------------- PV B::PVMG METHODS --------------- MAGIC SvSTASH B::MAGIC METHODS ---------------- MOREMAGIC PRIVATE TYPE FLAGS OBJ PTR B::PVLV METHODS --------------- TARGOFF TARGLEN TYPE TARG B::BM METHODS ------------- USEFUL PREVIOUS RARE TABLE B::GV METHODS ------------- is_empty This method returns TRUE if the GP field of the GV is NULL. NAME STASH SV IO FORM AV HV EGV CV CVGEN LINE FILE FILEGV GvREFCNT FLAGS B::IO METHODS ------------- LINES PAGE PAGE_LEN LINES_LEFT TOP_NAME TOP_GV FMT_NAME FMT_GV BOTTOM_NAME BOTTOM_GV SUBPROCESS IoTYPE IoFLAGS B::AV METHODS ------------- FILL MAX OFF ARRAY AvFLAGS B::CV METHODS ------------- STASH START ROOT GV FILE DEPTH PADLIST OUTSIDE XSUB XSUBANY CvFLAGS B::HV METHODS ------------- FILL MAX KEYS RITER NAME PMROOT ARRAY OP-RELATED CLASSES ------------------ B::OP, B::UNOP, B::BINOP, B::LOGOP, B::LISTOP, B::PMOP, B::SVOP, B::PADOP, B::PVOP, B::CVOP, B::LOOP, B::COP. These classes correspond in the obvious way to the underlying C structures of similar names. The inheritance hierarchy mimics the underlying C "inheritance". Access methods correspond to the underlying C structre field names, with the leading "class indication" prefix removed (op_). B::OP METHODS ------------- next sibling name This returns the op name as a string (e.g. "add", "rv2av"). ppaddr This returns the function name as a string (e.g. "PL_ppaddr[OP_ADD]", "PL_ppaddr[OP_RV2AV]"). desc This returns the op description from the global C PL_op_desc array (e.g. "addition" "array deref"). targ type seq flags private B::UNOP METHOD -------------- first B::BINOP METHOD --------------- last B::LOGOP METHOD --------------- other B::LISTOP METHOD ---------------- children B::PMOP METHODS --------------- pmreplroot pmreplstart pmnext pmregexp pmflags pmpermflags precomp B::SVOP METHOD -------------- sv gv B::PADOP METHOD --------------- padix B::PVOP METHOD -------------- pv B::LOOP METHODS --------------- redoop nextop lastop B::COP METHODS -------------- label stash file cop_seq arybase line FUNCTIONS EXPORTED BY B ======================= The B module exports a variety of functions: some are simple utility functions, others provide a Perl program with a way to get an initial "handle" on an internal object. main_cv Return the (faked) CV corresponding to the main part of the Perl program. init_av Returns the AV object (i.e. in class B::AV) representing INIT blocks. main_root Returns the root op (i.e. an object in the appropriate B::OP-derived class) of the main part of the Perl program. main_start Returns the starting op of the main part of the Perl program. comppadlist Returns the AV object (i.e. in class B::AV) of the global comppadlist. sv_undef Returns the SV object corresponding to the C variable sv_undef. sv_yes Returns the SV object corresponding to the C variable sv_yes. sv_no Returns the SV object corresponding to the C variable sv_no. amagic_generation Returns the SV object corresponding to the C variable amagic_generation. walkoptree(OP, METHOD) Does a tree-walk of the syntax tree based at OP and calls METHOD on each op it visits. Each node is visited before its children. If `walkoptree_debug' (q.v.) has been called to turn debugging on then the method `walkoptree_debug' is called on each op before METHOD is called. walkoptree_debug(DEBUG) Returns the current debugging flag for `walkoptree'. If the optional DEBUG argument is non-zero, it sets the debugging flag to that. See the description of `walkoptree' above for what the debugging flag does. walksymtable(SYMREF, METHOD, RECURSE) Walk the symbol table starting at SYMREF and call METHOD on each symbol visited. When the walk reached package symbols "Foo::" it invokes RECURSE and only recurses into the package if that sub returns true. svref_2object(SV) Takes any Perl variable and turns it into an object in the appropriate B::OP-derived or B::SV-derived class. Apart from functions such as main_root, this is the primary way to get an initial "handle" on a internal perl data structure which can then be followed with the other access methods. ppname(OPNUM) Return the PP function name (e.g. "pp_add") of op number OPNUM. hash(STR) Returns a string in the form "0x..." representing the value of the internal hash function used by perl on string STR. cast_I32(I) Casts I to the internal I32 type used by that perl. minus_c Does the equivalent of the -c command-line option. Obviously, this is only useful in a BEGIN block or else the flag is set too late. cstring(STR) Returns a double-quote-surrounded escaped version of STR which can be used as a string in C source code. class(OBJ) Returns the class of an object without the part of the classname preceding the first "::". This is used to turn "B::UNOP" into "UNOP" for example. threadsv_names In a perl compiled for threads, this returns a list of the special per-thread threadsv variables. AUTHOR ====== Malcolm Beattie, `mbeattie@sable.ox.ac.uk'  File: pm.info, Node: B/Asmdata, Next: B/Assembler, Prev: B, Up: Module List Autogenerated data about Perl ops, used to generate bytecode ************************************************************ NAME ==== B::Asmdata - Autogenerated data about Perl ops, used to generate bytecode SYNOPSIS ======== use Asmdata; DESCRIPTION =========== See `ext/B/B/Asmdata.pm'. AUTHOR ====== Malcolm Beattie, `mbeattie@sable.ox.ac.uk'  File: pm.info, Node: B/Assembler, Next: B/Bblock, Prev: B/Asmdata, Up: Module List Assemble Perl bytecode ********************** NAME ==== B::Assembler - Assemble Perl bytecode SYNOPSIS ======== use Assembler; DESCRIPTION =========== See `ext/B/B/Assembler.pm'. AUTHOR ====== Malcolm Beattie, `mbeattie@sable.ox.ac.uk'  File: pm.info, Node: B/Bblock, Next: B/Bytecode, Prev: B/Assembler, Up: Module List Walk basic blocks ***************** NAME ==== B::Bblock - Walk basic blocks SYNOPSIS ======== perl -MO=Bblock[,OPTIONS] foo.pl DESCRIPTION =========== This module is used by the B::CC back end. It walks "basic blocks". A basic block is a series of operations which is known to execute from start to finish, with no possiblity of branching or halting. AUTHOR ====== Malcolm Beattie, `mbeattie@sable.ox.ac.uk'  File: pm.info, Node: B/Bytecode, Next: B/C, Prev: B/Bblock, Up: Module List Perl compiler's bytecode backend ******************************** NAME ==== B::Bytecode - Perl compiler's bytecode backend SYNOPSIS ======== perl -MO=Bytecode[,OPTIONS] foo.pl DESCRIPTION =========== This compiler backend takes Perl source and generates a platform-independent bytecode encapsulating code to load the internal structures perl uses to run your program. When the generated bytecode is loaded in, your program is ready to run, reducing the time which perl would have taken to load and parse your program into its internal semi-compiled form. That means that compiling with this backend will not help improve the runtime execution speed of your program but may improve the start-up time. Depending on the environment in which your program runs this may or may not be a help. The resulting bytecode can be run with a special byteperl executable or (for non-main programs) be loaded via the `byteload_fh' function in the B module. OPTIONS ======= If there are any non-option arguments, they are taken to be names of objects to be saved (probably doesn't work properly yet). Without extra arguments, it saves the main program. *-ofilename* Output to filename instead of STDOUT. *-afilename* Append output to filename. - Force end of options. -f Force optimisations on or off one at a time. Each can be preceded by *no-* to turn the option off (e.g. *-fno-compress-nullops*). *-fcompress-nullops* Only fills in the necessary fields of ops which have been optimised away by perl's internal compiler. *-fomit-sequence-numbers* Leaves out code to fill in the op_seq field of all ops which is only used by perl's internal compiler. *-fbypass-nullops* If op->op_next ever points to a NULLOP, replaces the op_next field with the first non-NULLOP in the path of execution. *-fstrip-syntax-tree* Leaves out code to fill in the pointers which link the internal syntax tree together. They're not needed at run-time but leaving them out will make it impossible to recompile or disassemble the resulting program. It will also stop `goto label' statements from working. *-On* Optimisation level (n = 0, 1, 2, ...). -O means *-O1*. *-O1* sets *-fcompress-nullops* *-fomit-sequence numbers*. *-O6* adds *-fstrip-syntax-tree*. -D Debug options (concatenated or separate flags like `perl -D'). *-Do* Prints each OP as it's processed. *-Db* Print debugging information about bytecompiler progress. *-Da* Tells the (bytecode) assembler to include source assembler lines in its output as bytecode comments. *-DC* Prints each CV taken from the final symbol tree walk. -S Output (bytecode) assembler source rather than piping it through the assembler and outputting bytecode. -m Compile as a module rather than a standalone program. Currently this just means that the bytecodes for initialising main_start, main_root and `curpad' are omitted. EXAMPLES ======== perl -MO=Bytecode,-O6,-o,foo.plc foo.pl perl -MO=Bytecode,-S foo.pl > foo.S assemble foo.S > foo.plc Note that `assemble' lives in the B subdirectory of your perl library directory. The utility called perlcc may also be used to help make use of this compiler. perl -MO=Bytecode,-m,-oFoo.pmc Foo.pm BUGS ==== Plenty. Current status: experimental. AUTHOR ====== Malcolm Beattie, `mbeattie@sable.ox.ac.uk'