HTML::Mason::Interp man page on Alpinelinux

Man page or keyword search:  
man Server   18016 pages
apropos Keyword Search (all sections)
Output format
Alpinelinux logo
[printable version]

HTML::Mason::Interp(3)User Contributed Perl DocumentatioHTML::Mason::Interp(3)

NAME
       HTML::Mason::Interp - Mason Component Interpreter

VERSION
       version 1.54

SYNOPSIS
	   my $i = HTML::Mason::Interp->new (data_dir=>'/usr/local/mason',
					     comp_root=>'/usr/local/www/htdocs/',
					     ...other params...);

DESCRIPTION
       Interp is the Mason workhorse, executing components and routing their
       output and errors to all the right places. In a mod_perl environment,
       Interp objects are handed off immediately to an ApacheHandler object
       which internally calls the Interp implementation methods. In that case
       the only user method is the new() constructor.

PARAMETERS TO THE new() CONSTRUCTOR
       autohandler_name
	   File name used for autohandlers. Default is "autohandler".  If this
	   is set to an empty string ("") then autohandlers are turned off
	   entirely.

       buffer_preallocate_size
	   Number of bytes to preallocate in the output buffer for each
	   request.  Defaults to 0. Setting this to, say, your maximum page
	   size (or close to it) can reduce the number of reallocations Perl
	   performs as components add to the output buffer.

       code_cache_max_size
	   Specifies the maximum number of components that should be held in
	   the in-memory code cache. The default is 'unlimited', meaning no
	   components will ever be discarded; Mason can perform certain
	   optimizations in this mode. Setting this to zero disables the code
	   cache entirely. See the code cache section of the administrator's
	   manual for further details.

       comp_root
	   The component root marks the top of your component hierarchy and
	   defines how component paths are translated into real file paths.
	   For example, if your component root is /usr/local/httpd/docs, a
	   component path of /products/index.html translates to the file
	   /usr/local/httpd/docs/products/index.html.

	   Under Apache and CGI, comp_root defaults to the server's document
	   root. In standalone mode comp_root defaults to the current working
	   directory.

	   This parameter may be either a scalar or an array reference.	 If it
	   is a scalar, it should be a filesystem path indicating the
	   component root. If it is an array reference, it should be of the
	   following form:

	    [ [ foo => '/usr/local/foo' ],
	      [ bar => '/usr/local/bar' ] ]

	   This is an array of two-element array references, not a hash.  The
	   "keys" for each path must be unique and their "values" must be
	   filesystem paths.  These paths will be searched in the provided
	   order whenever a component path is resolved. For example, given the
	   above component roots and a component path of /products/index.html,
	   Mason would search first for /usr/local/foo/products/index.html,
	   then for /usr/local/bar/products/index.html.

	   The keys are used in several ways. They help to distinguish
	   component caches and object files between different component
	   roots, and they appear in the "title()" of a component.

	   When you specify a single path for a component root, this is
	   actually translated into

	     [ [ MAIN => path ] ]

	   If you have turned on dynamic_comp_root, you may modify the
	   component root(s) of an interpreter between requests by calling
	   "$interp->comp_root" with a value. However, the path associated
	   with any given key may not change between requests. For example, if
	   the initial component root is

	    [ [ foo => '/usr/local/foo' ],
	      [ bar => '/usr/local/bar' ], ]

	   then it may not be changed to

	    [ [ foo => '/usr/local/bar' ],
	      [ bar => '/usr/local/baz' ],

	   but it may be changed to

	    [ [ foo   => '/usr/local/foo' ],
	      [ blarg => '/usr/local/blarg' ] ]

	   In other words, you may add or remove key/path pairs but not modify
	   an already-used key/path pair. The reason for this restriction is
	   that the interpreter maintains a component cache per key that would
	   become invalid if the associated paths were to change.

       compiler
	   The Compiler object to associate with this Interpreter.  By default
	   a new object of class compiler_class will be created.

       compiler_class
	   The class to use when creating a compiler. Defaults to
	   HTML::Mason::Compiler.

       data_dir
	   The data directory is a writable directory that Mason uses for
	   various features and optimizations: for example, component object
	   files and data cache files. Mason will create the directory on
	   startup, if necessary, and set its permissions according to the web
	   server User/Group.

	   Under Apache, data_dir defaults to a directory called "mason" under
	   the Apache server root. You will need to change this on certain
	   systems that assign a high-level server root such as /usr!

	   In non-Apache environments, data_dir has no default. If it is left
	   unspecified, Mason will not use object files, and the default data
	   cache class will be "MemoryCache" instead of "FileCache".

       dynamic_comp_root
	   True or false, defaults to false. Indicates whether the comp_root
	   can be modified on this interpreter between requests. Mason can
	   perform a few optimizations with a fixed component root, so you
	   should only set this to true if you actually need it.

       escape_flags
	   A hash reference of escape flags to set for this object.  See the
	   section on the set_escape method for more details.

       ignore_warnings_expr
	   Regular expression indicating which warnings to ignore when loading
	   components. Any warning that is not ignored will prevent the
	   component from being loaded and executed. For example:

	       ignore_warnings_expr =>
		   'Global symbol.*requires explicit package'

	   If set to undef, all warnings are heeded. If set to '.', warnings
	   are turned off completely as a specially optimized case.

	   By default, this is set to 'Subroutine .* redefined'.  This allows
	   you to declare global subroutines inside <%once> sections and not
	   receive an error when the component is reloaded.

       object_file_extension
	   Extension to add to the end of object files. Default is ".obj".

       preloads
	   A list of component paths, optionally with glob wildcards, to load
	   when the interpreter initializes. e.g.

	       preloads => ['/foo/index.html','/bar/*.pl']

	   Default is the empty list.  For maximum performance, this should
	   only be used for components that are frequently viewed and rarely
	   updated.  See the preloading components section of the
	   administrator's manual for further details.

	   As mentioned in the developer's manual, a component's "<%once>"
	   section is executed when it is loaded.  For preloaded components,
	   this means that this section will be executed before a Mason or
	   Apache request exist, so preloading a component that uses $m or $r
	   in a "<%once>" section will fail.

       request_class
	   The class to use when creating requests. Defaults to
	   HTML::Mason::Request.

       resolver
	   The Resolver object to associate with this Compiler. By default a
	   new object of class resolver_class will be created.

       resolver_class
	   The class to use when creating a resolver. Defaults to
	   HTML::Mason::Resolver::File.

       static_source
	   True or false, default is false. When false, Mason checks the
	   timestamp of the component source file each time the component is
	   used to see if it has changed. This provides the instant feedback
	   for source changes that is expected for development.	 However it
	   does entail a file stat for each component executed.

	   When true, Mason assumes that the component source tree is
	   unchanging: it will not check component source files to determine
	   if the memory cache or object file has expired.  This can save many
	   file stats per request. However, in order to get Mason to recognize
	   a component source change, you must flush the memory cache and
	   remove object files.	 See static_source_touch_file for one easy way
	   to arrange this.

	   We recommend turning this mode on in your production sites if
	   possible, if performance is of any concern.

       static_source_touch_file
	   Specifies a filename that Mason will check once at the beginning of
	   of every request. When the file timestamp changes, Mason will (1)
	   clear its in-memory component cache, and (2) remove object files if
	   they have not already been deleted by another process.

	   This provides a convenient way to implement static_source mode.
	   All you need to do is make sure that a single file gets touched
	   whenever components change. For Mason's part, checking a single
	   file at the beginning of a request is much cheaper than checking
	   every component file when static_source=0.

       use_object_files
	   True or false, default is true.  Specifies whether Mason creates
	   object files to save the results of component parsing. You may want
	   to turn off object files for disk space reasons, but otherwise this
	   should be left alone.

ACCESSOR METHODS
       All of the above properties have standard accessor methods of the same
       name. Only comp_root and ignore_warnings_expr can be modified in an
       existing interpreter; the rest are read-only.

ESCAPE FLAG METHODS
       apply_escapes ($text, $flags, [more flags...])
	   This method applies a one or more escapes to a piece of text.  The
	   escapes are specified by giving their flag.	Each escape is applied
	   to the text in turn, after which the now-modified text is returned.

       remove_escape ($name)
	   Given an escape name, this removes that escape from the
	   interpreter's known escapes.	 If the name is not recognized, it is
	   simply ignored.

       set_escape ($name => see below])
	   This method is called to add an escape flag to the list of known
	   escapes for the interpreter.	 The flag may only consist of the
	   characters matching "\w" and the dash (-).  It must start with an
	   alpha character or an underscore (_).

	   The right hand side may be one of several things.  It can be a
	   subroutine reference.  It can also be a string match "/^\w+$/", in
	   which case it is assumed to be the name of a subroutine in the
	   "HTML::Mason::Escapes" module.  Finally, if it is a string that
	   does not match the above regex, then it is assumed to be "eval"able
	   code, which will return a subroutine reference.

	   When setting these with "PerlSetVar" directives in an Apache
	   configuration file, you can set them like this:

	     PerlSetVar	 MasonEscapeFlags  "h => \&HTML::Mason::Escapes::basic_html_escape"
	     PerlSetVar	 MasonEscapeFlags  "flag  => \&subroutine"
	     PerlSetVar	 MasonEscapeFlags  "uc	  => sub { ${$_[0]} = uc ${$_[0]}; }"
	     PerlAddVar	 MasonEscapeFlags  "thing => other_thing"

OTHER METHODS
       comp_exists (path)
	   Given an absolute component path, this method returns a boolean
	   value indicating whether or not a component exists for that path.

       exec (comp, args...)
	   Creates a new HTML::Mason::Request object for the given comp and
	   args, and executes it. The return value is the return value of
	   comp, if any.

	   This is useful for running Mason outside of a web environment.  See
	   "using Mason from a standalone script" in HTML::Mason::Admin for
	   examples.

	   This method isn't generally useful in a mod_perl environment; see
	   subrequests instead.

       flush_code_cache
	   Empties the component cache. When using Perl 5.00503 or earlier,
	   you should call this when finished with an interpreter, in order to
	   remove circular references that would prevent the interpreter from
	   being destroyed.

       load (path)
	   Returns the component object corresponding to an absolute component
	   "path", or undef if none exists. Dies with an error if the
	   component fails to load because of a syntax error.

       make_component (comp_source => ... )
       make_component (comp_file => ... )
	   This method compiles Mason component source code and returns a
	   Component object.  The source may be passed in as a string in
	   "comp_source", or as a filename in "comp_file".  When using
	   "comp_file", the filename is specified as a path on the file
	   system, not as a path relative to Mason's component root (see
	   $m->fetch_comp for that).

	   If Mason encounters an error during processing, an exception will
	   be thrown.

	   Example of usage:

	       # Make an anonymous component
	       my $anon_comp =
		 eval { $interp->make_component
			  ( comp_source => '<%perl>my $name = "World";</%perl>Hello <% $name %>!' ) };
	       die $@ if $@;

	       $m->comp($anon_comp);

       make_request (@request_params)
	   This method creates a Mason request object. The arguments to be
	   passed are the same as those for the "HTML::Mason::Request->new"
	   constructor or its relevant subclass. This method will likely only
	   be of interest to those attempting to write new handlers or to
	   subclass "HTML::Mason::Interp".  If you want to create a
	   subrequest, see subrequests instead.

       purge_code_cache ()
	   Called during request execution in order to clear out the code
	   cache. Mainly useful to subclasses that may want to take some
	   custom action upon clearing the cache.

       set_global ($varname, [values...])
	   This method sets a global to be used in components. "varname" is a
	   variable name, optionally preceded with a prefix ("$", "@", or
	   "%"); if the prefix is omitted then "$" is assumed. "varname" is
	   followed by a value, in the case of a scalar, or by one or more
	   values in the case of a list or hash.  For example:

	       # Set a global variable $dbh containing the database handle
	       $interp->set_global(dbh => DBI->connect(...));

	       # Set a global hash %session from a local hash
	       $interp->set_global('%session', %s);

	   The global is set in the package that components run in: usually
	   "HTML::Mason::Commands", although this can be overridden via the
	   in_package parameter.  The lines above, for example, are equivalent
	   to:

	       $HTML::Mason::Commands::dbh = DBI->connect(...);
	       %HTML::Mason::Commands::session = %s;

	   assuming that in_package has not been changed.

	   Any global that you set should also be registered with the
	   allow_globals parameter; otherwise you'll get warnings from
	   "strict".

SEE ALSO
       Mason

AUTHORS
       ·   Jonathan Swartz <swartz@pobox.com>

       ·   Dave Rolsky <autarch@urth.org>

       ·   Ken Williams <ken@mathforum.org>

COPYRIGHT AND LICENSE
       This software is copyright (c) 2012 by Jonathan Swartz.

       This is free software; you can redistribute it and/or modify it under
       the same terms as the Perl 5 programming language system itself.

perl v5.18.2			  2014-01-19		HTML::Mason::Interp(3)
[top]

List of man pages available for Alpinelinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net