← Index
NYTProf Performance Profile   « block view • line view • sub view »
For /usr/bin/epoll_server.pl
  Run on Wed Jan 5 05:34:33 2011
Reported on Wed Jan 5 05:35:53 2011

File /usr/lib/perl5/5.10.1/UNIVERSAL.pm
Statements Executed 166
Statement Execution Time 3.05ms
Subroutines — ordered by exclusive time
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
3963824124.1ms24.1msUNIVERSAL::::isaUNIVERSAL::isa (xsub)
3432553021.6ms21.6msUNIVERSAL::::canUNIVERSAL::can (xsub)
6852303.81ms3.81msUNIVERSAL::::VERSIONUNIVERSAL::VERSION (xsub)
162162891.43ms1.43msUNIVERSAL::::importUNIVERSAL::import
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package UNIVERSAL;
2
313µsour $VERSION = '1.05';
4
5# UNIVERSAL should not contain any extra subs/methods beyond those
6# that it exists to define. The use of Exporter below is a historical
7# accident that can't be fixed without breaking code. Note that we
8# *don't* set @ISA here, as we don't want all classes/objects inheriting from
9# Exporter. It's bad enough that all classes have a import() method
10# whenever UNIVERSAL.pm is loaded.
1112µsrequire Exporter;
1216µs@EXPORT_OK = qw(isa can VERSION);
13
14# Make sure that even though the import method is called, it doesn't do
15# anything unless called on UNIVERSAL.
16
# spent 1.43ms within UNIVERSAL::import which was called 162 times, avg 9µs/call: # once (246µs+0s) by Catalyst::View::TT::BEGIN@10 at line 10 of Catalyst/View/TT.pm # once (18µs+0s) by MooseX::Types::TypeDecorator::BEGIN@10 at line 10 of MooseX/Types/TypeDecorator.pm # once (18µs+0s) by Catalyst::View::TT::BEGIN@9 at line 9 of Catalyst/View/TT.pm # once (17µs+0s) by Template::Iterator::BEGIN@28 at line 28 of Template/Iterator.pm # once (16µs+0s) by MooseX::Role::WithOverloading::Meta::Role::BEGIN@1 at line 1 of (eval 0)[aliased.pm:50] at line 50 of aliased.pm # once (14µs+0s) by Template::Parser::BEGIN@41 at line 41 of Template/Parser.pm # once (11µs+0s) by Crypt::RSA::Key::BEGIN@18 at line 18 of Crypt/RSA/Key.pm # once (10µs+0s) by HTML::Prototype::BEGIN@9 at line 9 of HTML/Prototype.pm # once (10µs+0s) by Catalyst::Utils::BEGIN@6 at line 6 of Catalyst/Utils.pm # once (10µs+0s) by YAML::XS::BEGIN@77 at line 77 of YAML/XS.pm # once (10µs+0s) by Catalyst::Dispatcher::BEGIN@10 at line 10 of Catalyst/Dispatcher.pm # once (10µs+0s) by Epoll::BEGIN@5 at line 5 of Epoll.pm # once (10µs+0s) by Class::C3::Adopt::NEXT::BEGIN@6 at line 6 of Class/C3/Adopt/NEXT.pm # once (9µs+0s) by Path::Class::File::BEGIN@6 at line 6 of Path/Class/File.pm # once (9µs+0s) by Template::Parser::BEGIN@40 at line 40 of Template/Parser.pm # once (9µs+0s) by Locale::Maketext::BEGIN@390 at line 390 of Locale/Maketext.pm # once (9µs+0s) by Template::BEGIN@27 at line 27 of Template.pm # once (9µs+0s) by Pod::Simple::LinkSection::BEGIN@7 at line 7 of Pod/Simple/LinkSection.pm # once (9µs+0s) by Tie::EncryptedHash::BEGIN@16 at line 16 of Tie/EncryptedHash.pm # once (9µs+0s) by YAML::Node::BEGIN@7 at line 7 of YAML/Node.pm # once (9µs+0s) by Crypt::RSA::Key::Private::BEGIN@15 at line 15 of Crypt/RSA/Key/Private.pm # once (9µs+0s) by Catalyst::BEGIN@15 at line 15 of Catalyst.pm # once (9µs+0s) by Template::Stash::BEGIN@24 at line 24 of Template/Stash.pm # once (9µs+0s) by Locale::Maketext::Lexicon::BEGIN@1 at line 1 of (eval 0)[Locale/Maketext/Lexicon.pm:314] at line 314 of Locale/Maketext/Lexicon.pm # once (9µs+0s) by Template::Service::BEGIN@27 at line 27 of Template/Service.pm # once (9µs+0s) by Pod::Parser::BEGIN@205 at line 205 of Pod/Parser.pm # once (9µs+0s) by Crypt::RSA::Key::Private::SSH::Buffer::BEGIN@14 at line 14 of Crypt/RSA/Key/Private/SSH.pm # once (9µs+0s) by IO::Dir::BEGIN@17 at line 17 of IO/Dir.pm # once (9µs+0s) by Path::Class::Dir::BEGIN@7 at line 7 of Path/Class/Dir.pm # once (9µs+0s) by Catalyst::Request::Upload::BEGIN@6 at line 6 of Catalyst/Request/Upload.pm # once (9µs+0s) by Template::BEGIN@29 at line 29 of Template.pm # once (9µs+0s) by Epoll::DB::Poll::BEGIN@8 at line 8 of Epoll/DB/Poll.pm # once (9µs+0s) by Catalyst::Plugin::ConfigLoader::BEGIN@6 at line 6 of Catalyst/Plugin/ConfigLoader.pm # once (9µs+0s) by Crypt::RSA::BEGIN@20 at line 20 of Crypt/RSA.pm # once (9µs+0s) by Data::Visitor::BEGIN@10 at line 10 of Data/Visitor.pm # once (9µs+0s) by LaTeX::Driver::BEGIN@40 at line 40 of LaTeX/Driver.pm # once (9µs+0s) by Catalyst::Utils::BEGIN@8 at line 8 of Catalyst/Utils.pm # once (9µs+0s) by Exception::Class::BEGIN@7 at line 7 of Exception/Class.pm # once (9µs+0s) by Locale::Maketext::Lexicon::BEGIN@1 at line 1 of (eval 0)[Locale/Maketext/Lexicon.pm:314] at line 314 of Locale/Maketext/Lexicon.pm # once (9µs+0s) by Catalyst::Stats::BEGIN@6 at line 6 of Catalyst/Stats.pm # once (8µs+0s) by Catalyst::Component::BEGIN@4 at line 4 of Catalyst/Component.pm # once (8µs+0s) by MooseX::MethodAttributes::BEGIN@10 at line 10 of MooseX/MethodAttributes.pm # once (8µs+0s) by IO::Compress::Gzip::BEGIN@16 at line 16 of IO/Compress/Gzip.pm # once (8µs+0s) by MooseX::MethodAttributes::Role::Meta::Method::MaybeWrapped::BEGIN@7 at line 7 of MooseX/MethodAttributes/Role/Meta/Method/MaybeWrapped.pm # once (8µs+0s) by Path::Class::BEGIN@10 at line 10 of Path/Class.pm # once (8µs+0s) by Epoll::DB::Poll::Bdata::BEGIN@11 at line 11 of Epoll/DB/Poll/Bdata.pm # once (8µs+0s) by MooseX::Role::WithOverloading::BEGIN@5 at line 5 of MooseX/Role/WithOverloading.pm # once (8µs+0s) by Template::Stash::XS::BEGIN@17 at line 17 of Template/Stash/XS.pm # once (8µs+0s) by Catalyst::Plugin::I18N::BEGIN@8 at line 8 of Catalyst/Plugin/I18N.pm # once (8µs+0s) by Epoll::DB::common::BEGIN@11 at line 11 of Epoll/DB/common.pm # once (8µs+0s) by YAML::XS::LibYAML::BEGIN@6 at line 6 of YAML/XS/LibYAML.pm # once (8µs+0s) by MooseX::Role::WithOverloading::Meta::Role::Composite::BEGIN@6 at line 6 of MooseX/Role/WithOverloading/Meta/Role/Composite.pm # once (8µs+0s) by Catalyst::Dispatcher::BEGIN@4 at line 4 of Catalyst/Dispatcher.pm # once (8µs+0s) by Catalyst::Plugin::ConfigLoader::BEGIN@8 at line 8 of Catalyst/Plugin/ConfigLoader.pm # once (8µs+0s) by MooseX::Role::WithOverloading::Meta::Role::Application::ToRole::BEGIN@1 at line 1 of (eval 0)[aliased.pm:50] at line 50 of aliased.pm # once (8µs+0s) by IO::Compress::Base::Common::BEGIN@9 at line 9 of IO/Compress/Base/Common.pm # once (8µs+0s) by HTML::Prototype::BEGIN@14 at line 14 of HTML/Prototype.pm # once (8µs+0s) by Template::BEGIN@30 at line 30 of Template.pm # once (8µs+0s) by POSIX::SigRt::BEGIN@64 at line 64 of POSIX.pm # once (8µs+0s) by MooseX::MethodAttributes::Role::Meta::Role::BEGIN@6 at line 6 of MooseX/MethodAttributes/Role/Meta/Role.pm # once (8µs+0s) by Catalyst::ClassData::BEGIN@5 at line 5 of Catalyst/ClassData.pm # once (8µs+0s) by Catalyst::Plugin::Session::BEGIN@7 at line 7 of Catalyst/Plugin/Session.pm # once (8µs+0s) by IO::Uncompress::Gunzip::BEGIN@17 at line 17 of IO/Uncompress/Gunzip.pm # once (8µs+0s) by Catalyst::Plugin::Session::State::Cookie::BEGIN@7 at line 7 of Catalyst/Plugin/Session/State/Cookie.pm # once (8µs+0s) by Catalyst::BEGIN@14 at line 14 of Catalyst.pm # once (8µs+0s) by Catalyst::BEGIN@13 at line 13 of Catalyst.pm # once (8µs+0s) by Catalyst::Plugin::Session::Store::DBI::BEGIN@8 at line 8 of Catalyst/Plugin/Session/Store/DBI.pm # once (8µs+0s) by Catalyst::Component::BEGIN@9 at line 9 of Catalyst/Component.pm # once (8µs+0s) by Template::Provider::BEGIN@46 at line 46 of Template/Provider.pm # once (8µs+0s) by Crypt::RSA::Key::Private::SSH::BEGIN@56 at line 56 of Crypt/RSA/Key/Private/SSH.pm # once (8µs+0s) by Catalyst::Response::BEGIN@4 at line 4 of Catalyst/Response.pm # once (8µs+0s) by Template::Directive::BEGIN@33 at line 33 of Template/Directive.pm # once (8µs+0s) by Catalyst::View::TT::BEGIN@8 at line 8 of Catalyst/View/TT.pm # once (8µs+0s) by Crypt::Random::BEGIN@24 at line 24 of Crypt/Random.pm # once (8µs+0s) by Catalyst::BEGIN@8 at line 8 of Catalyst.pm # once (8µs+0s) by Exception::Class::Base::BEGIN@9 at line 9 of Exception/Class/Base.pm # once (8µs+0s) by IO::Compress::RawDeflate::BEGIN@12 at line 12 of IO/Compress/RawDeflate.pm # once (8µs+0s) by Crypt::Random::BEGIN@23 at line 23 of Crypt/Random.pm # once (8µs+0s) by Exception::Class::Base::BEGIN@8 at line 8 of Exception/Class/Base.pm # once (8µs+0s) by MooseX::Role::WithOverloading::Meta::Role::Application::ToRole::BEGIN@1 at line 1 of (eval 0)[aliased.pm:50] at line 50 of aliased.pm # once (8µs+0s) by MooseX::Role::WithOverloading::Meta::Role::Composite::BEGIN@1 at line 1 of (eval 0)[aliased.pm:50] at line 50 of aliased.pm # once (8µs+0s) by Catalyst::Request::Upload::BEGIN@9 at line 9 of Catalyst/Request/Upload.pm # once (8µs+0s) by IO::Uncompress::RawInflate::BEGIN@12 at line 12 of IO/Uncompress/RawInflate.pm # once (8µs+0s) by Crypt::RSA::BEGIN@18 at line 18 of Crypt/RSA.pm # once (8µs+0s) by Crypt::RSA::Key::BEGIN@19 at line 19 of Crypt/RSA/Key.pm # once (8µs+0s) by Epoll::BEGIN@7 at line 7 of Epoll.pm # once (8µs+0s) by Epoll::DB::Poll::BEGIN@10 at line 10 of Epoll/DB/Poll.pm # once (8µs+0s) by Epoll::DB::Poll::BEGIN@9 at line 9 of Epoll/DB/Poll.pm # once (8µs+0s) by Path::Class::Dir::BEGIN@6 at line 6 of Path/Class/Dir.pm # once (8µs+0s) by Catalyst::Dispatcher::BEGIN@11 at line 11 of Catalyst/Dispatcher.pm # once (8µs+0s) by Catalyst::Dispatcher::BEGIN@9 at line 9 of Catalyst/Dispatcher.pm # once (7µs+0s) by MooseX::Role::WithOverloading::Meta::Role::Composite::BEGIN@1 at line 1 of (eval 0)[aliased.pm:50] at line 50 of aliased.pm # once (7µs+0s) by Template::Stash::XS::BEGIN@16 at line 16 of Template/Stash/XS.pm # once (7µs+0s) by HTML::Prototype::BEGIN@11 at line 11 of HTML/Prototype.pm # once (7µs+0s) by HTML::Prototype::BEGIN@10 at line 10 of HTML/Prototype.pm # once (7µs+0s) by FindBin::BEGIN@100 at line 100 of FindBin.pm # once (7µs+0s) by Locale::Maketext::Lexicon::BEGIN@1 at line 1 of (eval 0)[Locale/Maketext/Lexicon.pm:314] at line 314 of Locale/Maketext/Lexicon.pm # once (7µs+0s) by Template::Context::BEGIN@27 at line 27 of Template/Context.pm # once (7µs+0s) by Locale::Maketext::Lexicon::BEGIN@1 at line 1 of (eval 0)[Locale/Maketext/Lexicon.pm:314] at line 314 of Locale/Maketext/Lexicon.pm # once (7µs+0s) by Locale::Maketext::Lexicon::BEGIN@1 at line 1 of (eval 0)[Locale/Maketext/Lexicon.pm:314] at line 314 of Locale/Maketext/Lexicon.pm # once (7µs+0s) by HTML::Prototype::BEGIN@12 at line 12 of HTML/Prototype.pm # once (7µs+0s) by MooseX::Role::WithOverloading::BEGIN@8 at line 8 of MooseX/Role/WithOverloading.pm # once (7µs+0s) by Epoll::DB::Poll::Bdata::BEGIN@10 at line 10 of Epoll/DB/Poll/Bdata.pm # once (7µs+0s) by namespace::autoclean::BEGIN@9 at line 9 of namespace/autoclean.pm # once (7µs+0s) by Devel::StackTrace::BEGIN@8 at line 8 of Devel/StackTrace.pm # once (7µs+0s) by HTML::Prototype::BEGIN@13 at line 13 of HTML/Prototype.pm # once (7µs+0s) by File::Copy::BEGIN@13 at line 13 of File/Copy.pm # once (7µs+0s) by MooseX::MethodAttributes::Role::BEGIN@10 at line 10 of MooseX/MethodAttributes/Role.pm # once (7µs+0s) by Class::C3::Adopt::NEXT::BEGIN@7 at line 7 of Class/C3/Adopt/NEXT.pm # once (7µs+0s) by Catalyst::Stats::BEGIN@8 at line 8 of Catalyst/Stats.pm # once (6µs+0s) by Crypt::RSA::Key::Private::SSH::BEGIN@54 at line 54 of Crypt/RSA/Key/Private/SSH.pm # once (6µs+0s) by Template::Context::BEGIN@30 at line 30 of Template/Context.pm # once (6µs+0s) by Template::Stash::BEGIN@25 at line 25 of Template/Stash.pm # once (6µs+0s) by Catalyst::Utils::BEGIN@4 at line 4 of Catalyst/Utils.pm # once (6µs+0s) by IO::Dir::BEGIN@19 at line 19 of IO/Dir.pm # once (6µs+0s) by Crypt::RSA::Key::Public::SSH::BEGIN@14 at line 14 of Crypt/RSA/Key/Public/SSH.pm # once (6µs+0s) by Catalyst::Plugin::ConfigLoader::BEGIN@7 at line 7 of Catalyst/Plugin/ConfigLoader.pm # once (6µs+0s) by Catalyst::BEGIN@12 at line 12 of Catalyst.pm # once (6µs+0s) by Catalyst::Component::BEGIN@5 at line 5 of Catalyst/Component.pm # once (6µs+0s) by Template::Provider::BEGIN@44 at line 44 of Template/Provider.pm # once (6µs+0s) by Path::Class::Entity::BEGIN@6 at line 6 of Path/Class/Entity.pm # once (6µs+0s) by Catalyst::Dispatcher::BEGIN@7 at line 7 of Catalyst/Dispatcher.pm # once (6µs+0s) by Template::Service::BEGIN@26 at line 26 of Template/Service.pm # once (6µs+0s) by Template::Provider::BEGIN@48 at line 48 of Template/Provider.pm # once (6µs+0s) by Crypt::RSA::Key::Private::SSH::BEGIN@55 at line 55 of Crypt/RSA/Key/Private/SSH.pm # once (6µs+0s) by Catalyst::Dispatcher::BEGIN@8 at line 8 of Catalyst/Dispatcher.pm # once (6µs+0s) by Path::Class::BEGIN@11 at line 11 of Path/Class.pm # once (6µs+0s) by Catalyst::Component::BEGIN@6 at line 6 of Catalyst/Component.pm # once (6µs+0s) by Catalyst::Utils::BEGIN@5 at line 5 of Catalyst/Utils.pm # once (6µs+0s) by Template::Context::BEGIN@28 at line 28 of Template/Context.pm # once (6µs+0s) by Path::Class::File::BEGIN@7 at line 7 of Path/Class/File.pm # once (6µs+0s) by Catalyst::Request::BEGIN@6 at line 6 of Catalyst/Request.pm # once (6µs+0s) by MooseX::Types::BEGIN@11 at line 11 of MooseX/Types.pm # once (6µs+0s) by Catalyst::BEGIN@24 at line 24 of Catalyst.pm # once (6µs+0s) by MooseX::Types::BEGIN@14 at line 14 of MooseX/Types.pm # once (5µs+0s) by File::Spec::Functions::BEGIN@3 at line 3 of File/Spec/Functions.pm # once (5µs+0s) by Catalyst::BEGIN@27 at line 27 of Catalyst.pm # once (5µs+0s) by Catalyst::DispatchType::Regex::BEGIN@6 at line 6 of Catalyst/DispatchType/Regex.pm # once (5µs+0s) by Catalyst::Controller::BEGIN@11 at line 11 of Catalyst/Controller.pm # once (4µs+0s) by Catalyst::DispatchType::Path::BEGIN@6 at line 6 of Catalyst/DispatchType/Path.pm # once (4µs+0s) by Catalyst::BEGIN@11 at line 11 of Catalyst.pm # once (4µs+0s) by Catalyst::Request::BEGIN@7 at line 7 of Catalyst/Request.pm # once (4µs+0s) by Catalyst::Plugin::I18N::BEGIN@6 at line 6 of Catalyst/Plugin/I18N.pm # once (4µs+0s) by Catalyst::BEGIN@16 at line 16 of Catalyst.pm # once (4µs+0s) by MooseX::Role::WithOverloading::Meta::Role::Composite::BEGIN@1 at line 1 of (eval 0)[aliased.pm:50] at line 50 of aliased.pm # once (4µs+0s) by Catalyst::Dispatcher::BEGIN@12 at line 12 of Catalyst/Dispatcher.pm # once (4µs+0s) by Catalyst::BEGIN@9 at line 9 of Catalyst.pm # once (4µs+0s) by Catalyst::BEGIN@10 at line 10 of Catalyst.pm # once (4µs+0s) by Catalyst::Dispatcher::BEGIN@16 at line 16 of Catalyst/Dispatcher.pm # once (4µs+0s) by MooseX::Role::WithOverloading::BEGIN@1 at line 1 of (eval 0)[aliased.pm:50] at line 50 of aliased.pm # once (3µs+0s) by Catalyst::DispatchType::Path::BEGIN@7 at line 7 of Catalyst/DispatchType/Path.pm # once (3µs+0s) by MooseX::Role::WithOverloading::BEGIN@1 at line 1 of (eval 0)[aliased.pm:50] at line 50 of aliased.pm # once (3µs+0s) by MooseX::Role::WithOverloading::BEGIN@1 at line 1 of (eval 0)[aliased.pm:50] at line 50 of aliased.pm # once (3µs+0s) by Catalyst::Request::BEGIN@9 at line 9 of Catalyst/Request.pm # once (3µs+0s) by Catalyst::Request::BEGIN@8 at line 8 of Catalyst/Request.pm # once (3µs+0s) by Catalyst::DispatchType::Path::BEGIN@8 at line 8 of Catalyst/DispatchType/Path.pm # once (3µs+0s) by Catalyst::BEGIN@25 at line 25 of Catalyst.pm # once (3µs+0s) by MooseX::Role::WithOverloading::BEGIN@1 at line 1 of (eval 0)[aliased.pm:50] at line 50 of aliased.pm # once (3µs+0s) by Catalyst::Controller::BEGIN@12 at line 12 of Catalyst/Controller.pm # once (3µs+0s) by Catalyst::Dispatcher::BEGIN@14 at line 14 of Catalyst/Dispatcher.pm # once (3µs+0s) by Catalyst::DispatchType::Regex::BEGIN@7 at line 7 of Catalyst/DispatchType/Regex.pm # once (3µs+0s) by Catalyst::Dispatcher::BEGIN@13 at line 13 of Catalyst/Dispatcher.pm
sub import {
171623.03ms return unless $_[0] eq __PACKAGE__;
18 goto &Exporter::import;
19}
20
21114µs1;
22__END__
23
24=head1 NAME
25
26UNIVERSAL - base class for ALL classes (blessed references)
27
28=head1 SYNOPSIS
29
30 $is_io = $fd->isa("IO::Handle");
31 $is_io = Class->isa("IO::Handle");
32
33 $does_log = $obj->DOES("Logger");
34 $does_log = Class->DOES("Logger");
35
36 $sub = $obj->can("print");
37 $sub = Class->can("print");
38
39 $sub = eval { $ref->can("fandango") };
40 $ver = $obj->VERSION;
41
42 # but never do this!
43 $is_io = UNIVERSAL::isa($fd, "IO::Handle");
44 $sub = UNIVERSAL::can($obj, "print");
45
46=head1 DESCRIPTION
47
48C<UNIVERSAL> is the base class from which all blessed references inherit.
49See L<perlobj>.
50
51C<UNIVERSAL> provides the following methods:
52
53=over 4
54
55=item C<< $obj->isa( TYPE ) >>
56
57=item C<< CLASS->isa( TYPE ) >>
58
59=item C<< eval { VAL->isa( TYPE ) } >>
60
61Where
62
63=over 4
64
65=item C<TYPE>
66
67is a package name
68
69=item C<$obj>
70
71is a blessed reference or a package name
72
73=item C<CLASS>
74
75is a package name
76
77=item C<VAL>
78
79is any of the above or an unblessed reference
80
81=back
82
83When used as an instance or class method (C<< $obj->isa( TYPE ) >>),
84C<isa> returns I<true> if $obj is blessed into package C<TYPE> or
85inherits from package C<TYPE>.
86
87When used as a class method (C<< CLASS->isa( TYPE ) >>, sometimes
88referred to as a static method), C<isa> returns I<true> if C<CLASS>
89inherits from (or is itself) the name of the package C<TYPE> or
90inherits from package C<TYPE>.
91
92If you're not sure what you have (the C<VAL> case), wrap the method call in an
93C<eval> block to catch the exception if C<VAL> is undefined.
94
95If you want to be sure that you're calling C<isa> as a method, not a class,
96check the invocant with C<blessed> from L<Scalar::Util> first:
97
98 use Scalar::Util 'blessed';
99
100 if ( blessed( $obj ) && $obj->isa("Some::Class") {
101 ...
102 }
103
104=item C<< $obj->DOES( ROLE ) >>
105
106=item C<< CLASS->DOES( ROLE ) >>
107
108C<DOES> checks if the object or class performs the role C<ROLE>. A role is a
109named group of specific behavior (often methods of particular names and
110signatures), similar to a class, but not necessarily a complete class by
111itself. For example, logging or serialization may be roles.
112
113C<DOES> and C<isa> are similar, in that if either is true, you know that the
114object or class on which you call the method can perform specific behavior.
115However, C<DOES> is different from C<isa> in that it does not care I<how> the
116invocant performs the operations, merely that it does. (C<isa> of course
117mandates an inheritance relationship. Other relationships include aggregation,
118delegation, and mocking.)
119
120By default, classes in Perl only perform the C<UNIVERSAL> role, as well as the
121role of all classes in their inheritance. In other words, by default C<DOES>
122responds identically to C<isa>.
123
124There is a relationship between roles and classes, as each class implies the
125existence of a role of the same name. There is also a relationship between
126inheritance and roles, in that a subclass that inherits from an ancestor class
127implicitly performs any roles its parent performs. Thus you can use C<DOES> in
128place of C<isa> safely, as it will return true in all places where C<isa> will
129return true (provided that any overridden C<DOES> I<and> C<isa> methods behave
130appropriately).
131
132=item C<< $obj->can( METHOD ) >>
133
134=item C<< CLASS->can( METHOD ) >>
135
136=item C<< eval { VAL->can( METHOD ) } >>
137
138C<can> checks if the object or class has a method called C<METHOD>. If it does,
139then it returns a reference to the sub. If it does not, then it returns
140I<undef>. This includes methods inherited or imported by C<$obj>, C<CLASS>, or
141C<VAL>.
142
143C<can> cannot know whether an object will be able to provide a method through
144AUTOLOAD (unless the object's class has overriden C<can> appropriately), so a
145return value of I<undef> does not necessarily mean the object will not be able
146to handle the method call. To get around this some module authors use a forward
147declaration (see L<perlsub>) for methods they will handle via AUTOLOAD. For
148such 'dummy' subs, C<can> will still return a code reference, which, when
149called, will fall through to the AUTOLOAD. If no suitable AUTOLOAD is provided,
150calling the coderef will cause an error.
151
152You may call C<can> as a class (static) method or an object method.
153
154Again, the same rule about having a valid invocant applies -- use an C<eval>
155block or C<blessed> if you need to be extra paranoid.
156
157=item C<VERSION ( [ REQUIRE ] )>
158
159C<VERSION> will return the value of the variable C<$VERSION> in the
160package the object is blessed into. If C<REQUIRE> is given then
161it will do a comparison and die if the package version is not
162greater than or equal to C<REQUIRE>.
163
164C<VERSION> can be called as either a class (static) method or an object
165method.
166
167=back
168
169=head1 WARNINGS
170
171B<NOTE:> C<can> directly uses Perl's internal code for method lookup, and
172C<isa> uses a very similar method and cache-ing strategy. This may cause
173strange effects if the Perl code dynamically changes @ISA in any package.
174
175You may add other methods to the UNIVERSAL class via Perl or XS code.
176You do not need to C<use UNIVERSAL> to make these methods
177available to your program (and you should not do so).
178
179=head1 EXPORTS
180
181None by default.
182
183You may request the import of three functions (C<isa>, C<can>, and C<VERSION>),
184however it is usually harmful to do so. Please don't do this in new code.
185
186For example, previous versions of this documentation suggested using C<isa> as
187a function to determine the type of a reference:
188
189 use UNIVERSAL 'isa';
190
191 $yes = isa $h, "HASH";
192 $yes = isa "Foo", "Bar";
193
194The problem is that this code will I<never> call an overridden C<isa> method in
195any class. Instead, use C<reftype> from L<Scalar::Util> for the first case:
196
197 use Scalar::Util 'reftype';
198
199 $yes = reftype( $h ) eq "HASH";
200
201and the method form of C<isa> for the second:
202
203 $yes = Foo->isa("Bar");
204
205=cut
# spent 3.81ms within UNIVERSAL::VERSION which was called 68 times, avg 56µs/call: # 12 times (713µs+0s) by namespace::autoclean::__ANON__[/usr/lib/perl5/vendor_perl/5.10.1/namespace/autoclean.pm:53] at line 42 of namespace/autoclean.pm, avg 59µs/call # 6 times (266µs+0s) by Catalyst::setup at line 1109 of Catalyst.pm, avg 44µs/call # once (184µs+0s) by Exception::Class::Base::BEGIN@9 at line 9 of Exception/Class/Base.pm # once (181µs+0s) by IO::Socket::BEGIN@12 at line 12 of IO/Socket.pm # once (178µs+0s) by IO::Compress::Gzip::BEGIN@13 at line 13 of IO/Compress/Gzip.pm # once (132µs+0s) by Moose::Util::BEGIN@9 at line 9 of Moose/Util.pm # once (109µs+0s) by Sub::Exporter::BEGIN@9 at line 9 of Sub/Exporter.pm # once (108µs+0s) by Exporter::Heavy::heavy_require_version at line 240 of Exporter/Heavy.pm # once (101µs+0s) by IO::Compress::Zlib::Extra::BEGIN@13 at line 13 of IO/Compress/Zlib/Extra.pm # once (100µs+0s) by HTTP::Body::OctetStream::BEGIN@7 at line 7 of HTTP/Body/OctetStream.pm # once (98µs+0s) by Pod::Select::BEGIN@242 at line 242 of Pod/Select.pm # once (57µs+0s) by Pod::Simple::BEGIN@8 at line 8 of Pod/Simple.pm # once (56µs+0s) by Compress::Zlib::BEGIN@12 at line 12 of Compress/Zlib.pm # once (50µs+0s) by IO::Compress::Gzip::BEGIN@11 at line 11 of IO/Compress/Gzip.pm # once (50µs+0s) by Data::OptList::BEGIN@8 at line 8 of Data/OptList.pm # once (49µs+0s) by Compress::Zlib::BEGIN@11 at line 11 of Compress/Zlib.pm # once (47µs+0s) by Moose::BEGIN@16 at line 16 of Moose.pm # once (45µs+0s) by IO::Uncompress::RawInflate::BEGIN@11 at line 11 of IO/Uncompress/RawInflate.pm # once (45µs+0s) by IO::Uncompress::RawInflate::BEGIN@8 at line 8 of IO/Uncompress/RawInflate.pm # once (45µs+0s) by IO::Compress::RawDeflate::BEGIN@146 at line 146 of IO/Compress/RawDeflate.pm # once (44µs+0s) by Moose::Exporter::BEGIN@14 at line 14 of Moose/Exporter.pm # once (44µs+0s) by Compress::Zlib::BEGIN@455 at line 455 of Compress/Zlib.pm # once (44µs+0s) by Net::SMTP::BEGIN@13 at line 13 of Net/SMTP.pm # once (43µs+0s) by IO::Compress::Gzip::BEGIN@15 at line 15 of IO/Compress/Gzip.pm # once (43µs+0s) by IO::Compress::Adapter::Deflate::BEGIN@9 at line 9 of IO/Compress/Adapter/Deflate.pm # once (43µs+0s) by IO::Uncompress::Adapter::Inflate::BEGIN@8 at line 8 of IO/Uncompress/Adapter/Inflate.pm # once (43µs+0s) by IO::Uncompress::Base::BEGIN@17 at line 17 of IO/Uncompress/Base.pm # once (42µs+0s) by IO::Uncompress::Adapter::Inflate::BEGIN@7 at line 7 of IO/Uncompress/Adapter/Inflate.pm # once (41µs+0s) by IO::Uncompress::Gunzip::BEGIN@14 at line 14 of IO/Uncompress/Gunzip.pm # once (40µs+0s) by Locale::Maketext::BEGIN@6 at line 6 of Locale/Maketext.pm # once (40µs+0s) by IO::Compress::RawDeflate::BEGIN@145 at line 145 of IO/Compress/RawDeflate.pm # once (40µs+0s) by IO::Uncompress::Gunzip::BEGIN@15 at line 15 of IO/Uncompress/Gunzip.pm # once (40µs+0s) by IO::Compress::Adapter::Deflate::BEGIN@7 at line 7 of IO/Compress/Adapter/Deflate.pm # once (40µs+0s) by IO::Compress::Base::BEGIN@9 at line 9 of IO/Compress/Base.pm # once (40µs+0s) by IO::Uncompress::Gunzip::BEGIN@16 at line 16 of IO/Uncompress/Gunzip.pm # once (40µs+0s) by IO::Uncompress::Gunzip::BEGIN@17 at line 17 of IO/Uncompress/Gunzip.pm # once (39µs+0s) by IO::Uncompress::RawInflate::BEGIN@12 at line 12 of IO/Uncompress/RawInflate.pm # once (39µs+0s) by IO::Compress::RawDeflate::BEGIN@12 at line 12 of IO/Compress/RawDeflate.pm # once (38µs+0s) by IO::Uncompress::RawInflate::BEGIN@9 at line 9 of IO/Uncompress/RawInflate.pm # once (38µs+0s) by IO::Uncompress::Gunzip::BEGIN@50 at line 50 of IO/Uncompress/Gunzip.pm # once (38µs+0s) by IO::Uncompress::Gunzip::BEGIN@12 at line 12 of IO/Uncompress/Gunzip.pm # once (37µs+0s) by IO::Compress::RawDeflate::BEGIN@11 at line 11 of IO/Compress/RawDeflate.pm # once (37µs+0s) by IO::Compress::Gzip::BEGIN@14 at line 14 of IO/Compress/Gzip.pm # once (36µs+0s) by IO::Compress::RawDeflate::BEGIN@10 at line 10 of IO/Compress/RawDeflate.pm # once (35µs+0s) by Compress::Zlib::BEGIN@13 at line 13 of Compress/Zlib.pm # once (34µs+0s) by Compress::Zlib::BEGIN@14 at line 14 of Compress/Zlib.pm # once (32µs+0s) by IO::Compress::Gzip::BEGIN@16 at line 16 of IO/Compress/Gzip.pm # once (30µs+0s) by HTTP::Body::XFormsMultipart::BEGIN@8 at line 8 of HTTP/Body/XFormsMultipart.pm # once (28µs+0s) by File::Temp::BEGIN@146 at line 146 of File/Temp.pm # once (25µs+0s) by HTTP::Body::MultiPart::BEGIN@8 at line 8 of HTTP/Body/MultiPart.pm # once (21µs+0s) by HTTP::Body::XForms::BEGIN@7 at line 7 of HTTP/Body/XForms.pm # once (19µs+0s) by File::Temp::BEGIN@144 at line 144 of File/Temp.pm
sub UNIVERSAL::VERSION; # xsub
# spent 21.6ms within UNIVERSAL::can which was called 3432 times, avg 6µs/call: # 1195 times (6.35ms+0s) by Moose::Meta::Class::new_object at line 259 of Moose/Meta/Class.pm, avg 5µs/call # 326 times (1.20ms+0s) by MooseX::MethodAttributes::Role::Meta::Class::get_method_with_attributes_list at line 30 of MooseX/MethodAttributes/Role/Meta/Class.pm, avg 4µs/call # 259 times (1.50ms+0s) by Class::MOP::Mixin::HasAttributes::add_attribute at line 45 of Class/MOP/Mixin/HasAttributes.pm, avg 6µs/call # 196 times (1.38ms+0s) by Class::MOP::Mixin::HasMethods::add_method at line 45 of Class/MOP/Mixin/HasMethods.pm, avg 7µs/call # 174 times (810µs+0s) by Moose::Meta::Class::does_role at line 224 of Moose/Meta/Class.pm, avg 5µs/call # 130 times (620µs+0s) by Moose::Util::does_role at line 48 of Moose/Util.pm, avg 5µs/call # 119 times (977µs+0s) by Moose::Meta::Class::add_attribute at line 303 of Moose/Meta/Class.pm, avg 8µs/call # 118 times (730µs+0s) by Moose::Meta::Method::Constructor::_initialize_body at line 88 of Moose/Meta/Method/Constructor.pm, avg 6µs/call # 118 times (649µs+0s) by Moose::Meta::Method::Constructor::_generate_triggers at line 165 of Moose/Meta/Method/Constructor.pm, avg 6µs/call # 102 times (749µs+0s) by Moose::Meta::Class::excludes_role at line 244 of Moose/Meta/Class.pm, avg 7µs/call # 70 times (639µs+0s) by Moose::Exporter::__ANON__[/usr/lib/perl5/vendor_perl/5.10.1/i386-linux-thread-multi/Moose/Exporter.pm:389] at line 348 of Moose/Exporter.pm, avg 9µs/call # 66 times (757µs+0s) by Catalyst::Controller::_parse_attrs at line 315 of Catalyst/Controller.pm, avg 11µs/call # 65 times (274µs+0s) by MooseX::MethodAttributes::Role::Meta::Class::get_nearest_methods_with_attributes at line 60 of MooseX/MethodAttributes/Role/Meta/Class.pm, avg 4µs/call # 45 times (184µs+0s) by MooseX::MethodAttributes::Role::Meta::Class::get_all_methods_with_attributes at line 49 of MooseX/MethodAttributes/Role/Meta/Class.pm, avg 4µs/call # 43 times (512µs+0s) by Moose::Util::MetaRole::_make_new_class at line 148 of Moose/Util/MetaRole.pm, avg 12µs/call # 35 times (482µs+0s) by attributes::import at line 40 of attributes.pm, avg 14µs/call # 35 times (227µs+0s) by Class::MOP::Class::__ANON__::SERIAL::7::attributes at line 10 of accessor attributes defined at MooseX/MethodAttributes/Role/Meta/Method.pm, avg 6µs/call # 34 times (325µs+0s) by Moose::init_meta at line 197 of Moose.pm, avg 10µs/call # 29 times (383µs+0s) by Moose::Role::init_meta at line 120 of Moose/Role.pm, avg 13µs/call # 29 times (352µs+0s) by Catalyst::_filter_component at line 614 of Catalyst.pm, avg 12µs/call # 24 times (189µs+0s) by Class::MOP::Method::Inlined::can_be_inlined at line 58 of Class/MOP/Method/Inlined.pm, avg 8µs/call # 24 times (151µs+0s) by Class::MOP::Method::Inlined::can_be_inlined at line 70 of Class/MOP/Method/Inlined.pm, avg 6µs/call # 23 times (177µs+0s) by Sub::Exporter::default_generator at line 848 of Sub/Exporter.pm, avg 8µs/call # 17 times (148µs+0s) by Moose::Object::does at line 122 of Moose/Object.pm, avg 9µs/call # 17 times (89µs+0s) by Moose::Util::add_method_modifier at line 201 of Moose/Util.pm, avg 5µs/call # 17 times (88µs+0s) by Module::Pluggable::Object::BEGIN@6 at line 41 of File/Spec/Functions.pm, avg 5µs/call # 14 times (117µs+0s) by Moose::Meta::Attribute::install_delegation at line 617 of Moose/Meta/Attribute.pm, avg 8µs/call # 12 times (287µs+0s) by Catalyst::Dispatcher::setup_actions at line 606 of Catalyst/Dispatcher.pm, avg 24µs/call # 12 times (81µs+0s) by Moose::Object::BUILDALL at line 51 of Moose/Object.pm, avg 7µs/call # 11 times (285µs+0s) by Catalyst::setup_components at line 2422 of Catalyst.pm, avg 26µs/call # 11 times (101µs+0s) by Catalyst::setup_component at line 2496 of Catalyst.pm, avg 9µs/call # 9 times (51µs+0s) by Moose::Meta::Role::Composite::add_method at line 84 of Moose/Meta/Role/Composite.pm, avg 6µs/call # 7 times (36µs+0s) by Catalyst::Controller::get_action_methods at line 185 of Catalyst/Controller.pm, avg 5µs/call # 5 times (36µs+0s) by Moose::Meta::TypeConstraint::Parameterizable::parameterize at line 59 of Moose/Meta/TypeConstraint/Parameterizable.pm, avg 7µs/call # 5 times (30µs+0s) by Data::Visitor::visit_ref at line 137 of Data/Visitor.pm, avg 6µs/call # 4 times (43µs+0s) by Catalyst::Dispatcher::_invoke_as_component at line 325 of Catalyst/Dispatcher.pm, avg 11µs/call # 4 times (31µs+0s) by Catalyst::Dispatcher::_invoke_as_component at line 330 of Catalyst/Dispatcher.pm, avg 8µs/call # 4 times (27µs+0s) by overload::Overloaded at line 52 of overload.pm, avg 7µs/call # 4 times (19µs+0s) by Moose::Meta::Attribute::_call_builder at line 412 of Moose/Meta/Attribute.pm, avg 5µs/call # 2 times (56µs+0s) by Catalyst::View::TT::BEGIN@9 at line 69 of Template/Timer.pm, avg 28µs/call # 2 times (13µs+0s) by if::work at line 14 of if.pm, avg 7µs/call # 2 times (7µs+0s) by Moose::Meta::Attribute::clone_and_inherit_options at line 172 of Moose/Meta/Attribute.pm, avg 4µs/call # 2 times (6µs+0s) by Moose::Meta::Attribute::clone_and_inherit_options at line 217 of Moose/Meta/Attribute.pm, avg 3µs/call # once (186µs+0s) by Catalyst::Controller::_ACTION at line 110 of Catalyst/Controller.pm # once (63µs+0s) by Data::Visitor::Callback::BEGIN@6 at line 443 of Data/Visitor.pm # once (47µs+0s) by Catalyst::finalize at line 1740 of Catalyst.pm # once (18µs+0s) by Moose::Util::resolve_metaclass_alias at line 192 of Moose/Util.pm # once (17µs+0s) by Catalyst::prepare at line 1962 of Catalyst.pm # once (12µs+0s) by Config::Any::Base::is_supported at line 41 of Config/Any/Base.pm # once (8µs+0s) by Moose::Object::BEGIN@106 at line 107 of Moose/Object.pm # once (7µs+0s) by Catalyst::Component::BEGIN@7 at line 19 of Class/C3/Adopt/NEXT.pm # once (6µs+0s) by Config::Any::Base::is_supported at line 45 of Config/Any/Base.pm # once (6µs+0s) by Catalyst::setup at line 1199 of Catalyst.pm # once (6µs+0s) by Catalyst::Plugin::ConfigLoader::BEGIN@8 at line 283 of Data/Visitor/Callback.pm # once (3µs+0s) by Catalyst::handle_request at line 1927 of Catalyst.pm
sub UNIVERSAL::can; # xsub
# spent 24.1ms within UNIVERSAL::isa which was called 3963 times, avg 6µs/call: # 305 times (1.52ms+0s) by Class::MOP::Method::Accessor::new at line 26 of Class/MOP/Method/Accessor.pm, avg 5µs/call # 299 times (1.80ms+0s) by Class::MOP::Class::_check_metaclass_compatibility at line 198 of Class/MOP/Class.pm, avg 6µs/call # 299 times (1.58ms+0s) by Class::MOP::Class::_check_metaclass_compatibility at line 190 of Class/MOP/Class.pm, avg 5µs/call # 259 times (1.33ms+0s) by Class::MOP::Mixin::HasAttributes::add_attribute at line 24 of Class/MOP/Mixin/HasAttributes.pm, avg 5µs/call # 257 times (1.41ms+0s) by Moose::Meta::Class::_superclass_meta_is_compatible at line 378 of Moose/Meta/Class.pm, avg 5µs/call # 234 times (1.13ms+0s) by Class::MOP::Attribute::attach_to_class at line 230 of Class/MOP/Attribute.pm, avg 5µs/call # 214 times (1.52ms+0s) by Class::MOP::Class::clone_object at line 411 of Class/MOP/Class.pm, avg 7µs/call # 214 times (934µs+0s) by Class::MOP::Class::clone_object at line 404 of Class/MOP/Class.pm, avg 4µs/call # 151 times (1.55ms+0s) by base::import at line 81 of base.pm, avg 10µs/call # 149 times (515µs+0s) by Moose::Meta::Method::Constructor::_generate_slot_assignment at line 281 of Moose/Meta/Method/Constructor.pm, avg 3µs/call # 132 times (862µs+0s) by Moose::Meta::Class::_superclass_meta_is_compatible at line 371 of Moose/Meta/Class.pm, avg 7µs/call # 129 times (1.08ms+0s) by Class::MOP::Class::new_object at line 349 of Class/MOP/Class.pm, avg 8µs/call # 118 times (469µs+0s) by Moose::Meta::Method::Constructor::_generate_slot_initializer at line 198 of Moose/Meta/Method/Constructor.pm, avg 4µs/call # 104 times (615µs+0s) by Class::MOP::Method::Wrapped::wrap at line 74 of Class/MOP/Method/Wrapped.pm, avg 6µs/call # 89 times (701µs+0s) by Moose::Meta::Class::superclasses at line 286 of Moose/Meta/Class.pm, avg 8µs/call # 82 times (381µs+0s) by Moose::Meta::TypeConstraint::Registry::add_type_constraint at line 47 of Moose/Meta/TypeConstraint/Registry.pm, avg 5µs/call # 78 times (746µs+0s) by Class::MOP::Method::Inlined::can_be_inlined at line 43 of Class/MOP/Method/Inlined.pm, avg 10µs/call # 66 times (871µs+0s) by Class::MOP::Class::superclasses at line 570 of Class/MOP/Class.pm, avg 13µs/call # 63 times (361µs+0s) by Moose::Meta::Role::apply at line 408 of Moose/Meta/Role.pm, avg 6µs/call # 49 times (375µs+0s) by List::MoreUtils::all at line 407 of Moose/Meta/Class.pm, avg 8µs/call # 41 times (245µs+0s) by Moose::Util::_apply_all_roles at line 112 of Moose/Util.pm, avg 6µs/call # 35 times (199µs+0s) by Moose::Util::TypeConstraints::find_type_constraint at line 255 of Moose/Util/TypeConstraints.pm, avg 6µs/call # 34 times (355µs+0s) by Moose::init_meta at line 151 of Moose.pm, avg 10µs/call # 31 times (138µs+0s) by Class::MOP::Method::Constructor::new at line 20 of Class/MOP/Method/Constructor.pm, avg 4µs/call # 27 times (96µs+0s) by Moose::Meta::Method::Destructor::is_needed at line 58 of Moose/Meta/Method/Destructor.pm, avg 4µs/call # 26 times (364µs+0s) by Class::MOP::Class::__ANON__[/usr/lib/perl5/vendor_perl/5.10.1/i386-linux-thread-multi/Class/MOP/Class.pm:678] at line 671 of Class/MOP/Class.pm, avg 14µs/call # 26 times (99µs+0s) by Moose::Meta::Class::add_role at line 188 of Moose/Meta/Class.pm, avg 4µs/call # 26 times (95µs+0s) by Moose::Meta::Class::add_role_application at line 201 of Moose/Meta/Class.pm, avg 4µs/call # 25 times (96µs+0s) by Moose::Meta::Role::Attribute::attach_to_role at line 55 of Moose/Meta/Role/Attribute.pm, avg 4µs/call # 22 times (133µs+0s) by Class::MOP::Method::Inlined::_uninlined_body at line 24 of Class/MOP/Method/Inlined.pm, avg 6µs/call # 21 times (115µs+0s) by MooseX::Types::TypeDecorator::isa at line 115 of MooseX/Types/TypeDecorator.pm, avg 5µs/call # 20 times (199µs+0s) by metaclass::import at line 30 of metaclass.pm, avg 10µs/call # 20 times (93µs+0s) by Locale::Maketext::Lexicon::lexicon_get at line 424 of Locale/Maketext/Lexicon.pm, avg 5µs/call # 17 times (68µs+0s) by Moose::Meta::Role::add_attribute at line 196 of Moose/Meta/Role.pm, avg 4µs/call # 16 times (239µs+0s) by Catalyst::ClassData::mk_classdata at line 48 of Catalyst/ClassData.pm, avg 15µs/call # 14 times (65µs+0s) by Moose::Meta::Attribute::install_delegation at line 617 of Moose/Meta/Attribute.pm, avg 5µs/call # 14 times (56µs+0s) by Moose::Meta::Method::Delegation::new at line 25 of Moose/Meta/Method/Delegation.pm, avg 4µs/call # 13 times (70µs+0s) by namespace::autoclean::__ANON__[/usr/lib/perl5/vendor_perl/5.10.1/namespace/autoclean.pm:53] at line 42 of namespace/autoclean.pm, avg 5µs/call # 13 times (44µs+0s) by Tree::Simple::_insertChildAt at line 162 of Tree/Simple.pm, avg 3µs/call # 13 times (34µs+0s) by Tree::Simple::_setParent at line 78 of Tree/Simple.pm, avg 3µs/call # 12 times (65µs+0s) by Config::Any::plugins at line 272 of Config/Any.pm, avg 5µs/call # 12 times (48µs+0s) by Moose::Meta::Class::add_attribute at line 296 of Moose/Meta/Class.pm, avg 4µs/call # 11 times (191µs+0s) by Moose::Util::MetaRole::apply_metaroles at line 28 of Moose/Util/MetaRole.pm, avg 17µs/call # 11 times (73µs+0s) by Catalyst::_controller_init_base_classes at line 2486 of Catalyst.pm, avg 7µs/call # 11 times (59µs+0s) by Moose::Util::MetaRole::_fixup_old_style_args at line 65 of Moose/Util/MetaRole.pm, avg 5µs/call # 11 times (45µs+0s) by Class::MOP::Package::reinitialize at line 50 of Class/MOP/Package.pm, avg 4µs/call # 11 times (41µs+0s) by Moose::Meta::Role::add_role at line 357 of Moose/Meta/Role.pm, avg 4µs/call # 10 times (35µs+0s) by Catalyst::Component::BUILDARGS at line 83 of Catalyst/Component.pm, avg 3µs/call # 10 times (34µs+0s) by Template::Context::process at line 339 of Template/Context.pm, avg 3µs/call # 10 times (32µs+0s) by Class::MOP::Method::Inlined::can_be_inlined at line 79 of Class/MOP/Method/Inlined.pm, avg 3µs/call # 9 times (38µs+0s) by MooseX::Types::TypeDecorator::new at line 71 of MooseX/Types/TypeDecorator.pm, avg 4µs/call # 8 times (29µs+0s) by Moose::Meta::Role::Composite::new at line 44 of Moose/Meta/Role/Composite.pm, avg 4µs/call # 7 times (91µs+0s) by Catalyst::setup_plugins at line 2821 of Catalyst.pm, avg 13µs/call # 7 times (52µs+0s) by Moose::Meta::Class::_reconcile_with_superclass_meta at line 406 of Moose/Meta/Class.pm, avg 7µs/call # 6 times (57µs+0s) by Catalyst::_register_plugin at line 2789 of Catalyst.pm, avg 9µs/call # 6 times (40µs+0s) by DBI::setup_driver at line 826 of DBI.pm, avg 7µs/call # 6 times (27µs+0s) by DBI::setup_driver at line 829 of DBI.pm, avg 5µs/call # 5 times (344µs+0s) by Locale::Maketext::Lexicon::import at line 350 of Locale/Maketext/Lexicon.pm, avg 69µs/call # 5 times (21µs+0s) by Tree::Simple::accept at line 454 of Tree/Simple.pm, avg 4µs/call # 5 times (17µs+0s) by Tree::Simple::Visitor::FindByUID::visit at line 44 of Tree/Simple/Visitor/FindByUID.pm, avg 3µs/call # 5 times (16µs+0s) by Tree::Simple::Visitor::FindByUID::visit at line 98 of Tree/Simple/Visitor/FindByUID.pm, avg 3µs/call # 4 times (88µs+0s) by Catalyst::setup_engine at line 2638 of Catalyst.pm, avg 22µs/call # 4 times (16µs+0s) by Template::Context::process at line 331 of Template/Context.pm, avg 4µs/call # 4 times (12µs+0s) by Template::Context::process at line 373 of Template/Context.pm, avg 3µs/call # 4 times (10µs+0s) by Template::Context::template at line 87 of Template/Context.pm, avg 2µs/call # 3 times (24µs+0s) by Catalyst::setup_plugins at line 2815 of Catalyst.pm, avg 8µs/call # 2 times (11µs+0s) by Catalyst::Plugin::Session::check_session_plugin_requirements at line 62 of Catalyst/Plugin/Session.pm, avg 5µs/call # 2 times (7µs+0s) by Moose::Role::init_meta at line 123 of Moose/Role.pm, avg 3µs/call # 2 times (6µs+0s) by Template::Document::__ANON__[/usr/lib/perl5/vendor_perl/5.10.1/Epoll/root/templates/includes/locale_select.tt:36] at line 13 of Epoll/root/templates/includes/locale_select.tt, avg 3µs/call # 2 times (6µs+0s) by Moose::Meta::Class::_process_inherited_attribute at line 615 of Moose/Meta/Class.pm, avg 3µs/call # 2 times (5µs+0s) by Class::MOP::Attribute::__ANON__[/usr/lib/perl5/vendor_perl/5.10.1/i386-linux-thread-multi/Class/MOP/Attribute.pm:386] at line 384 of Class/MOP/Attribute.pm, avg 2µs/call # once (7µs+0s) by Moose::Meta::TypeConstraint::Class::__ANON__[/usr/lib/perl5/vendor_perl/5.10.1/i386-linux-thread-multi/Moose/Meta/TypeConstraint/Class.pm:38] at line 37 of Moose/Meta/TypeConstraint/Class.pm # once (6µs+0s) by Template::Document::__ANON__[/usr/lib/perl5/vendor_perl/5.10.1/Epoll/root/templates/admin/voters.tt:105] at line 88 of Epoll/root/templates/admin/voters.tt # once (5µs+0s) by Locale::Maketext::Lexicon::import at line 246 of Locale/Maketext/Lexicon.pm # once (5µs+0s) by Moose::Meta::Attribute::_process_accessors at line 570 of Moose/Meta/Attribute.pm # once (5µs+0s) by Template::Document::__ANON__[/usr/lib/perl5/vendor_perl/5.10.1/Epoll/root/templates/includes/header.tt:65] at line 24 of Epoll/root/templates/includes/header.tt # once (4µs+0s) by Template::Document::__ANON__[/usr/lib/perl5/vendor_perl/5.10.1/Epoll/root/templates/includes/header.tt:65] at line 18 of Epoll/root/templates/includes/header.tt # once (4µs+0s) by Catalyst::setup at line 1157 of Catalyst.pm # once (3µs+0s) by Catalyst::setup at line 1049 of Catalyst.pm # once (3µs+0s) by Catalyst::import at line 97 of Catalyst.pm # once (2µs+0s) by Moose::init_meta at line 161 of Moose.pm # once (2µs+0s) by Moose::init_meta at line 208 of Moose.pm
sub UNIVERSAL::isa; # xsub