%PDF- %PDF-
Direktori : /usr/share/doc/perl-Template-Toolkit-2.24/old/modules/Template/ |
Current File : //usr/share/doc/perl-Template-Toolkit-2.24/old/modules/Template/Base.html |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"> <html> <head> <title>Template::Base</title> <link rel="stylesheet" type="text/css" href="../../css/blue.css" title="Clear Blue"> <link rel="alternate stylesheet" type="text/css" href="../../css/orange.css" title="Clear Orange"> <link rel="alternate stylesheet" type="text/css" href="../../css/green.css" title="Clear Green"> <link rel="alternate stylesheet" type="text/css" href="../../css/purple.css" title="Clear Purple"> <link rel="alternate stylesheet" type="text/css" href="../../css/grey.css" title="Clear Grey"> <!--[if IE 6]> <link rel="stylesheet" type="text/css" href="../../css/ie6.css" /> <![endif]--> <link rel="stylesheet" type="text/css" href="/css/print.css" media="print"> <script type="text/javascript" src="../../js/tt2.js"></script> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <meta name="author" content="Andy Wardley"> </head> <body id="body"> <div id="layout"> <div id="header"> <a href="../../index.html" id="logo" alt="" title="Click for the Home Page"><span class="alt">TT2 Home Page</span></a> <ul id="trail"> <li><a href="../../modules/index.html">Modules</a></li> <li><a href="../../modules/Template/index.html">Template::*</a></li> <li class="last"><a href="../../modules/Template/Base.html">Base.pm</a></li> </ul> <div class="controls"> <a href="#" class="menu show" onclick="widescreen_off(); return false" title="Show Menu"> <span class="about">Click to view the menu. It's very nice.</span> </a> <a href="#" class="menu hide" onclick="widescreen_on(); return false" title="Hide Menu"> <span class="about">Click to hide the menu and go all widescreen!</span> </a> <div class="pager"> <span class="go back">Back<span class="about">Help! I'm stuck on this web page and I can't get off. Please don't go back, help me!</span></span> <a href="../../modules/Template/index.html" title="Template::* Modules" class="go up">Up<span class="about"><h4>Template::* Modules</h4></span></a> <a href="../../modules/Template/Config.html" title="Template::Config" class="go next">Next<span class="about"><h4>Template::Config</h4>Factory module for instantiating other TT2 modules</span></a> </div> </div> <h1 class="headline">Template::Base</h1> <h2 class="subhead">Base class module implementing common functionality</h1> </div> <div id="page"> <div id="sidebar"> <a href="../../index.html" id="logo"></a> <div id="menu"> <ul class="menu"> <li class="l0 first"><a href="../../manual/index.html">Manual</a></li> <li class="l0"><a href="../../modules/index.html" class="warm">Modules</a></li> <li class="l1"><a href="../../modules/Template.html">Template.pm</a></li> <li class="l1"><a href="../../modules/Template/index.html" class="warm">Template::*</a></li> <li class="l2"><a href="../../modules/Template/Base.html" class="warm">Base.pm</a></li> <li class="l2"><a href="../../modules/Template/Config.html">Config.pm</a></li> <li class="l2"><a href="../../modules/Template/Constants.html">Constants.pm</a></li> <li class="l2"><a href="../../modules/Template/Context.html">Context.pm</a></li> <li class="l2"><a href="../../modules/Template/Directive.html">Directive.pm</a></li> <li class="l2"><a href="../../modules/Template/Document.html">Document.pm</a></li> <li class="l2"><a href="../../modules/Template/Exception.html">Exception.pm</a></li> <li class="l2"><a href="../../modules/Template/Filters.html">Filters.pm</a></li> <li class="l2"><a href="../../modules/Template/Grammar.html">Grammar.pm</a></li> <li class="l2"><a href="../../modules/Template/Iterator.html">Iterator.pm</a></li> <li class="l2"><a href="../../modules/Template/Namespace/index.html">Namespace::*</a></li> <li class="l2"><a href="../../modules/Template/Parser.html">Parser.pm</a></li> <li class="l2"><a href="../../modules/Template/Plugin.html">Plugin.pm</a></li> <li class="l2"><a href="../../modules/Template/Plugin/index.html">Plugin::*</a></li> <li class="l2"><a href="../../modules/Template/Plugins.html">Plugins.pm</a></li> <li class="l2"><a href="../../modules/Template/Provider.html">Provider.pm</a></li> <li class="l2"><a href="../../modules/Template/Service.html">Service.pm</a></li> <li class="l2"><a href="../../modules/Template/Stash.html">Stash.pm</a></li> <li class="l2"><a href="../../modules/Template/Stash/index.html">Stash::*</a></li> <li class="l2"><a href="../../modules/Template/Test.html">Test.pm</a></li> <li class="l2"><a href="../../modules/Template/VMethods.html">VMethods.pm</a></li> <li class="l2"><a href="../../modules/Template/View.html">View.pm</a></li> <li class="l0"><a href="../../tools/index.html">Tools</a></li> <li class="l0 last"><a href="../../tutorial/index.html">Tutorial</a></li> </ul> <div class="foot"></div> </div> </div> <div id="content"> <div class="section"> <div class="head"> <h1 id="contents" onclick="switch_section(this)" title="Click title to show/hide section content.">Contents</h1> <a href="#body" class="top" title="Back up to the top of the page" >Top</a> </div> <div class="body"> <ul class="toc"> <li class=""><a href="#SYNOPSIS">SYNOPSIS</a></li> <li class=""><a href="#DESCRIPTION">DESCRIPTION</a></li> <li class=""><a href="#PUBLIC_METHODS">PUBLIC METHODS</a></li> <li class="sub"><a href="#method_new">new(\%config)</a></li> <li class="sub"><a href="#method_error">error($msg, ...)</a></li> <li class="sub"><a href="#method_debug">debug($msg, ...)</a></li> <li class=""><a href="#AUTHOR">AUTHOR</a></li> <li class=""><a href="#COPYRIGHT">COPYRIGHT</a></li> <li class=""><a href="#SEE_ALSO">SEE ALSO</a></li> </ul> </div> </div> <div class="pod"> <div class="section"> <div class="head"> <h1 id="SYNOPSIS" onclick="switch_section(this)" title="Click title to show/hide section content.">SYNOPSIS</h1> <a href="#body" class="top" title="Back up to the top of the page" >Top</a> </div> <div class="body"> <pre>package My::Module; use base qw( Template::Base ); sub _init { my ($self, $config) = @_; $self->{ doodah } = $config->{ doodah } || return $self->error("No 'doodah' specified"); return $self; } package main; my $object = My::Module->new({ doodah => 'foobar' }) || die My::Module->error();</pre> </div> </div> <div class="section"> <div class="head"> <h1 id="DESCRIPTION" onclick="switch_section(this)" title="Click title to show/hide section content.">DESCRIPTION</h1> <a href="#body" class="top" title="Back up to the top of the page" >Top</a> </div> <div class="body"> <p> Base class module which implements a constructor and error reporting functionality for various Template Toolkit modules. </p> </div> </div> <div class="section"> <div class="head"> <h1 id="PUBLIC_METHODS" onclick="switch_section(this)" title="Click title to show/hide section content.">PUBLIC METHODS</h1> <a href="#body" class="top" title="Back up to the top of the page" >Top</a> </div> <div class="body"> <div class="subsection"> <div class="head"> <h2 id="method_new" class="method" onclick="switch_subsection(this)" title="Click title to show/hide sub-section content.">new(\%config)</h2> <a href="#body" class="top" title="Back up to the top of the page" >Top</a> </div> <div class="body"> <p> Constructor method which accepts a reference to a hash array or a list of <code>name => value</code> parameters which are folded into a hash. The <code>_init()</code> method is then called, passing the configuration hash and should return true/false to indicate success or failure. A new object reference is returned, or undef on error. Any error message raised can be examined via the <a href="#method_error">error()</a> class method or directly via the <code>$ERROR</code> package variable in the derived class. </p> <pre>my $module = My::Module->new({ ... }) || die My::Module->error(), "\n";</pre> <pre>my $module = My::Module->new({ ... }) || die "constructor error: $My::Module::ERROR\n";</pre> </div> </div> <div class="subsection"> <div class="head"> <h2 id="method_error" class="method" onclick="switch_subsection(this)" title="Click title to show/hide sub-section content.">error($msg, ...)</h2> <a href="#body" class="top" title="Back up to the top of the page" >Top</a> </div> <div class="body"> <p> May be called as an object method to get/set the internal <code>_ERROR</code> member or as a class method to get/set the <code>$ERROR</code> variable in the derived class's package. </p> <pre>my $module = My::Module->new({ ... }) || die My::Module->error(), "\n";</pre> <pre>$module->do_something() || die $module->error(), "\n";</pre> <p> When called with parameters (multiple params are concatenated), this method will set the relevant variable and return undef. This is most often used within object methods to report errors to the caller. </p> <pre>package My::Module; sub foobar { my $self = shift; # some other code... return $self->error('some kind of error...') if $some_condition; }</pre> </div> </div> <div class="subsection"> <div class="head"> <h2 id="method_debug" class="method" onclick="switch_subsection(this)" title="Click title to show/hide sub-section content.">debug($msg, ...)</h2> <a href="#body" class="top" title="Back up to the top of the page" >Top</a> </div> <div class="body"> <p> Generates a debugging message by concatenating all arguments passed into a string and printing it to <code>STDERR</code>. A prefix is added to indicate the module of the caller. </p> <pre>package My::Module; sub foobar { my $self = shift; $self->debug('called foobar()'); # some other code... }</pre> <p> When the <code>foobar()</code> method is called, the following message is sent to <code>STDERR</code>: </p> <pre>[My::Module] called foobar()</pre> <p> Objects can set an internal <code>DEBUG</code> value which the <code>debug()</code> method will examine. If this value sets the relevant bits to indicate <code>DEBUG_CALLER</code> then the file and line number of the caller will be appened to the message. </p> <pre>use Template::Constants qw( :debug ); my $module = My::Module->new({ DEBUG => DEBUG_SERVICE | DEBUG_CONTEXT | DEBUG_CALLER, }); $module->foobar();</pre> <p> This generates an error message such as: </p> <pre>[My::Module] called foobar() at My/Module.pm line 6</pre> </div> </div> </div> </div> <div class="section"> <div class="head"> <h1 id="AUTHOR" onclick="switch_section(this)" title="Click title to show/hide section content.">AUTHOR</h1> <a href="#body" class="top" title="Back up to the top of the page" >Top</a> </div> <div class="body"> <p> Andy Wardley <abw@wardley.org> <a href="http://wardley.org/">http://wardley.org/</a> </p> </div> </div> <div class="section"> <div class="head"> <h1 id="COPYRIGHT" onclick="switch_section(this)" title="Click title to show/hide section content.">COPYRIGHT</h1> <a href="#body" class="top" title="Back up to the top of the page" >Top</a> </div> <div class="body"> <p> Copyright (C) 1996-2007 Andy Wardley. All Rights Reserved. </p> <p> This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. </p> </div> </div> <div class="section"> <div class="head"> <h1 id="SEE_ALSO" onclick="switch_section(this)" title="Click title to show/hide section content.">SEE ALSO</h1> <a href="#body" class="top" title="Back up to the top of the page" >Top</a> </div> <div class="body"> <p> <a href="../../modules/Template.html">Template</a> </p> </div> </div> </div></div> <br class="clear" /> <div class="pageinfo"> /modules/Template/Base.html last modified 10:57:44 31-May-2007 </div> </div> <div id="footer"> <a href="http://opensource.org/" class="osi"></a> <div class="controls"> <div class="pager"> <span class="go back">Back<span class="about"></span></span> <a href="../../modules/Template/index.html" title="Template::* Modules" class="go up">Up<span class="about"><h4>Template::* Modules</h4></span></a> <a href="../../modules/Template/Config.html" title="Template::Config" class="go next">Next<span class="about"><h4>Template::Config</h4></span></a> </div> </div> <div class="copyright"> Copyright © 1996-2007 <a href="http://wardley.org/">Andy Wardley</a>. All Rights Reserved. </div> <div class="licence"> The <a href="http://template-toolkit.org/">Template Toolkit</a> is <a href="http://opensource.org/">Open Source</a> software. You can redistribute and/or modify it under the terms of the <a href="http://www.opensource.org/licenses/gpl-license.php">GNU Public Licence</a> or the <a href="http://www.opensource.org/licenses/artistic-license.php">Perl Artistic Licence</a>. </div> </div> <div id="palette"> <ul> <li class="first"><a href="#" class="blue" onclick="set_style('Clear Blue')"></a></li> <li><a href="#" class="orange" onclick="set_style('Clear Orange')"></a></li> <li><a href="#" class="green" onclick="set_style('Clear Green')"></a></li> <li><a href="#" class="purple" onclick="set_style('Clear Purple')"></a></li> <li><a href="#" class="grey" onclick="set_style('Clear Grey')"></a></li> </ul> </div> </div> </body> </html>