← Index
NYTProf Performance Profile   « line view »
For /Users/timbo/perl5/perlbrew/perls/perl-5.18.2/bin/perlcritic
  Run on Sat Mar 19 22:12:22 2016
Reported on Sat Mar 19 22:14:10 2016

Filename/Users/timbo/perl5/perlbrew/perls/perl-5.18.2/lib/site_perl/5.18.2/PPI/Token/Number/Octal.pm
StatementsExecuted 9 statements in 273µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11111µs23µsPPI::Token::Number::Octal::::BEGIN@29PPI::Token::Number::Octal::BEGIN@29
1118µs8µsPPI::Token::Number::Octal::::BEGIN@33PPI::Token::Number::Octal::BEGIN@33
1116µs34µsPPI::Token::Number::Octal::::BEGIN@32PPI::Token::Number::Octal::BEGIN@32
1113µs3µsPPI::Token::Number::Octal::::BEGIN@30PPI::Token::Number::Octal::BEGIN@30
0000s0sPPI::Token::Number::Octal::::__TOKENIZER__on_charPPI::Token::Number::Octal::__TOKENIZER__on_char
0000s0sPPI::Token::Number::Octal::::literalPPI::Token::Number::Octal::literal
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package PPI::Token::Number::Octal;
2
3=pod
4
5=head1 NAME
6
7PPI::Token::Number::Octal - Token class for a binary number
8
9=head1 SYNOPSIS
10
11 $n = 0777; # octal integer
12
13=head1 INHERITANCE
14
15 PPI::Token::Number::Octal
16 isa PPI::Token::Number
17 isa PPI::Token
18 isa PPI::Element
19
20=head1 DESCRIPTION
21
22The C<PPI::Token::Number::Octal> class is used for tokens that
23represent base-8 numbers.
24
25=head1 METHODS
26
27=cut
28
29219µs234µs
# spent 23µs (11+12) within PPI::Token::Number::Octal::BEGIN@29 which was called: # once (11µs+12µs) by PPI::Token::BEGIN@44 at line 29
use strict;
# spent 23µs making 1 call to PPI::Token::Number::Octal::BEGIN@29 # spent 12µs making 1 call to strict::import
30222µs13µs
# spent 3µs within PPI::Token::Number::Octal::BEGIN@30 which was called: # once (3µs+0s) by PPI::Token::BEGIN@44 at line 30
use PPI::Token::Number ();
# spent 3µs making 1 call to PPI::Token::Number::Octal::BEGIN@30
31
32228µs262µs
# spent 34µs (6+28) within PPI::Token::Number::Octal::BEGIN@32 which was called: # once (6µs+28µs) by PPI::Token::BEGIN@44 at line 32
use vars qw{$VERSION @ISA};
# spent 34µs making 1 call to PPI::Token::Number::Octal::BEGIN@32 # spent 28µs making 1 call to vars::import
33
# spent 8µs within PPI::Token::Number::Octal::BEGIN@33 which was called: # once (8µs+0s) by PPI::Token::BEGIN@44 at line 36
BEGIN {
341300ns $VERSION = '1.215';
3518µs @ISA = 'PPI::Token::Number';
361194µs18µs}
# spent 8µs making 1 call to PPI::Token::Number::Octal::BEGIN@33
37
38=pod
39
40=head2 base
41
42Returns the base for the number: 8.
43
44=cut
45
46sub base () { 8 }
47
48=pod
49
50=head2 literal
51
52Return the numeric value of this token.
53
54=cut
55
56sub literal {
57 my $self = shift;
58 return if $self->{_error};
59 my $str = $self->_literal;
60 my $neg = $str =~ s/^\-//;
61 my $val = oct $str;
62 return $neg ? -$val : $val;
63}
64
- -
69#####################################################################
70# Tokenizer Methods
71
72sub __TOKENIZER__on_char {
73 my $class = shift;
74 my $t = shift;
75 my $char = substr( $t->{line}, $t->{line_cursor}, 1 );
76
77 # Allow underscores straight through
78 return 1 if $char eq '_';
79
80 if ( $char =~ /\d/ ) {
81 # You cannot have 8s and 9s on octals
82 if ( $char eq '8' or $char eq '9' ) {
83 $t->{token}->{_error} = "Illegal character in octal number '$char'";
84 }
85 return 1;
86 }
87
88 # Doesn't fit a special case, or is after the end of the token
89 # End of token.
90 $t->_finalize_token->__TOKENIZER__on_char( $t );
91}
92
9312µs1;
94
95=pod
96
97=head1 SUPPORT
98
99See the L<support section|PPI/SUPPORT> in the main module.
100
101=head1 AUTHOR
102
103Chris Dolan E<lt>cdolan@cpan.orgE<gt>
104
105=head1 COPYRIGHT
106
107Copyright 2006 Chris Dolan.
108
109This program is free software; you can redistribute
110it and/or modify it under the same terms as Perl itself.
111
112The full text of the license can be found in the
113LICENSE file included with this module.
114
115=cut