← Index
NYTProf Performance Profile   « line view »
For /usr/local/libexec/sympa/task_manager-debug.pl
  Run on Tue Jun 1 22:32:51 2021
Reported on Tue Jun 1 22:35:05 2021

Filename/usr/local/lib/perl5/site_perl/Specio/TypeChecks.pm
StatementsExecuted 0 statements in 0s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
0000s0sSpecio::TypeChecks::::BEGIN@10Specio::TypeChecks::BEGIN@10
0000s0sSpecio::TypeChecks::::BEGIN@3Specio::TypeChecks::BEGIN@3
0000s0sSpecio::TypeChecks::::BEGIN@4Specio::TypeChecks::BEGIN@4
0000s0sSpecio::TypeChecks::::BEGIN@8Specio::TypeChecks::BEGIN@8
0000s0sSpecio::TypeChecks::::BEGIN@9Specio::TypeChecks::BEGIN@9
0000s0sSpecio::TypeChecks::::CORE:matchSpecio::TypeChecks::CORE:match (opcode)
0000s0sSpecio::TypeChecks::::does_roleSpecio::TypeChecks::does_role
0000s0sSpecio::TypeChecks::::is_ArrayRefSpecio::TypeChecks::is_ArrayRef
0000s0sSpecio::TypeChecks::::is_ClassNameSpecio::TypeChecks::is_ClassName
0000s0sSpecio::TypeChecks::::is_CodeRefSpecio::TypeChecks::is_CodeRef
0000s0sSpecio::TypeChecks::::is_HashRefSpecio::TypeChecks::is_HashRef
0000s0sSpecio::TypeChecks::::is_IntSpecio::TypeChecks::is_Int
0000s0sSpecio::TypeChecks::::is_StrSpecio::TypeChecks::is_Str
0000s0sSpecio::TypeChecks::::isa_classSpecio::TypeChecks::isa_class
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Specio::TypeChecks;
2
3use strict;
4use warnings;
5
6our $VERSION = '0.47';
7
8use Exporter qw( import );
9use Specio::Helpers qw( is_class_loaded );
10use Scalar::Util qw( blessed );
11
12our @EXPORT_OK = qw(
13 does_role
14 is_ArrayRef
15 is_ClassName
16 is_CodeRef
17 is_HashRef
18 is_Int
19 is_Str
20 isa_class
21);
22
23sub is_ArrayRef {
24 return ref $_[0] eq 'ARRAY';
25}
26
27sub is_CodeRef {
28 return ref $_[0] eq 'CODE';
29}
30
31sub is_HashRef {
32 return ref $_[0] eq 'HASH';
33}
34
35sub is_Str {
36 defined( $_[0] ) && !ref( $_[0] ) && ref( \$_[0] ) eq 'SCALAR'
37 || ref( \( my $val = $_[0] ) eq 'SCALAR' );
38}
39
40sub is_Int {
41 ( defined( $_[0] ) && !ref( $_[0] ) && ref( \$_[0] ) eq 'SCALAR'
42 || ref( \( my $val = $_[0] ) eq 'SCALAR' ) )
43 && $_[0] =~ /^[0-9]+$/;
44}
45
46sub is_ClassName {
47 is_class_loaded( $_[0] );
48}
49
50sub isa_class {
51 blessed( $_[0] ) && $_[0]->isa( $_[1] );
52}
53
54sub does_role {
55 blessed( $_[0] ) && $_[0]->can('does') && $_[0]->does( $_[1] );
56}
57
581;
59
60# ABSTRACT: Type checks used internally for Specio classes (it's not self-bootstrapping (yet?))
61
62__END__