← Index
NYTProf Performance Profile   « line view »
For starman worker -M FindBin --max-requests 50 --workers 2 --user=kohadev-koha --group kohadev-koha --pid /var/run/koha/kohadev/plack.pid --daemonize --access-log /var/log/koha/kohadev/plack.log --error-log /var/log/koha/kohadev/plack-error.log -E deployment --socket /var/run/koha/kohadev/plack.sock /etc/koha/sites/kohadev/plack.psgi
  Run on Fri Jan 8 14:16:49 2016
Reported on Fri Jan 8 14:23:06 2016

Filename/usr/lib/x86_64-linux-gnu/perl5/5.20/Template/Exception.pm
StatementsExecuted 0 statements in 0s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11124µs71µsTemplate::Exception::::BEGIN@27Template::Exception::BEGIN@27
11124µs31µsTemplate::Exception::::BEGIN@22Template::Exception::BEGIN@22
11111µs44µsTemplate::Exception::::BEGIN@24Template::Exception::BEGIN@24
11110µs47µsTemplate::Exception::::BEGIN@26Template::Exception::BEGIN@26
1117µs23µsTemplate::Exception::::BEGIN@25Template::Exception::BEGIN@25
1117µs12µsTemplate::Exception::::BEGIN@23Template::Exception::BEGIN@23
0000s0sTemplate::Exception::::as_stringTemplate::Exception::as_string
0000s0sTemplate::Exception::::infoTemplate::Exception::info
0000s0sTemplate::Exception::::newTemplate::Exception::new
0000s0sTemplate::Exception::::select_handlerTemplate::Exception::select_handler
0000s0sTemplate::Exception::::textTemplate::Exception::text
0000s0sTemplate::Exception::::typeTemplate::Exception::type
0000s0sTemplate::Exception::::type_infoTemplate::Exception::type_info
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1#============================================================= -*-Perl-*-
2#
3# Template::Exception
4#
5# DESCRIPTION
6# Module implementing a generic exception class used for error handling
7# in the Template Toolkit.
8#
9# AUTHOR
10# Andy Wardley <abw@wardley.org>
11#
12# COPYRIGHT
13# Copyright (C) 1996-2007 Andy Wardley. All Rights Reserved.
14#
15# This module is free software; you can redistribute it and/or
16# modify it under the same terms as Perl itself.
17#
18#========================================================================
19
20package Template::Exception;
21
22239µs
# spent 31µs (24+8) within Template::Exception::BEGIN@22 which was called: # once (24µs+8µs) by Template::Service::BEGIN@27 at line 22
use strict;
# spent 31µs making 1 call to Template::Exception::BEGIN@22 # spent 8µs making 1 call to strict::import
23216µs
# spent 12µs (7+4) within Template::Exception::BEGIN@23 which was called: # once (7µs+4µs) by Template::Service::BEGIN@27 at line 23
use warnings;
# spent 12µs making 1 call to Template::Exception::BEGIN@23 # spent 4µs making 1 call to warnings::import
24276µs
# spent 44µs (11+33) within Template::Exception::BEGIN@24 which was called: # once (11µs+33µs) by Template::Service::BEGIN@27 at line 24
use constant TYPE => 0;
# spent 44µs making 1 call to Template::Exception::BEGIN@24 # spent 33µs making 1 call to constant::import
25238µs
# spent 23µs (7+15) within Template::Exception::BEGIN@25 which was called: # once (7µs+15µs) by Template::Service::BEGIN@27 at line 25
use constant INFO => 1;
# spent 23µs making 1 call to Template::Exception::BEGIN@25 # spent 15µs making 1 call to constant::import
26285µs
# spent 47µs (10+37) within Template::Exception::BEGIN@26 which was called: # once (10µs+37µs) by Template::Service::BEGIN@27 at line 26
use constant TEXT => 2;
# spent 47µs making 1 call to Template::Exception::BEGIN@26 # spent 37µs making 1 call to constant::import
272119µs
# spent 71µs (24+48) within Template::Exception::BEGIN@27 which was called: # once (24µs+48µs) by Template::Service::BEGIN@27 at line 27
use overload q|""| => "as_string", fallback => 1;
# spent 71µs making 1 call to Template::Exception::BEGIN@27 # spent 48µs making 1 call to overload::import
28
29our $VERSION = 2.70;
30
31
32#------------------------------------------------------------------------
33# new($type, $info, \$text)
34#
35# Constructor method used to instantiate a new Template::Exception
36# object. The first parameter should contain the exception type. This
37# can be any arbitrary string of the caller's choice to represent a
38# specific exception. The second parameter should contain any
39# information (i.e. error message or data reference) relevant to the
40# specific exception event. The third optional parameter may be a
41# reference to a scalar containing output text from the template
42# block up to the point where the exception was thrown.
43#------------------------------------------------------------------------
44
45sub new {
46 my ($class, $type, $info, $textref) = @_;
47 bless [ $type, $info, $textref ], $class;
48}
49
50
51#------------------------------------------------------------------------
52# type()
53# info()
54# type_info()
55#
56# Accessor methods to return the internal TYPE and INFO fields.
57#------------------------------------------------------------------------
58
59sub type {
60 $_[0]->[ TYPE ];
61}
62
63sub info {
64 $_[0]->[ INFO ];
65}
66
67sub type_info {
68 my $self = shift;
69 @$self[ TYPE, INFO ];
70}
71
72#------------------------------------------------------------------------
73# text()
74# text(\$pretext)
75#
76# Method to return the text referenced by the TEXT member. A text
77# reference may be passed as a parameter to supercede the existing
78# member. The existing text is added to the *end* of the new text
79# before being stored. This facility is provided for template blocks
80# to gracefully de-nest when an exception occurs and allows them to
81# reconstruct their output in the correct order.
82#------------------------------------------------------------------------
83
84sub text {
85 my ($self, $newtextref) = @_;
86 my $textref = $self->[ TEXT ];
87
88 if ($newtextref) {
89 $$newtextref .= $$textref if $textref && $textref ne $newtextref;
90 $self->[ TEXT ] = $newtextref;
91 return '';
92 }
93 elsif ($textref) {
94 return $$textref;
95 }
96 else {
97 return '';
98 }
99}
100
101
102#------------------------------------------------------------------------
103# as_string()
104#
105# Accessor method to return a string indicating the exception type and
106# information.
107#------------------------------------------------------------------------
108
109sub as_string {
110 my $self = shift;
111 return $self->[ TYPE ] . ' error - ' . $self->[ INFO ];
112}
113
114
115#------------------------------------------------------------------------
116# select_handler(@types)
117#
118# Selects the most appropriate handler for the exception TYPE, from
119# the list of types passed in as parameters. The method returns the
120# item which is an exact match for TYPE or the closest, more
121# generic handler (e.g. foo being more generic than foo.bar, etc.)
122#------------------------------------------------------------------------
123
124sub select_handler {
125 my ($self, @options) = @_;
126 my $type = $self->[ TYPE ];
127 my %hlut;
128 @hlut{ @options } = (1) x @options;
129
130 while ($type) {
131 return $type if $hlut{ $type };
132
133 # strip .element from the end of the exception type to find a
134 # more generic handler
135 $type =~ s/\.?[^\.]*$//;
136 }
137 return undef;
138}
139
1401;
141
142__END__