Filename | /Users/timbo/perl5/perlbrew/perls/perl-5.18.2/lib/site_perl/5.18.2/PPI/Document/Fragment.pm |
Statements | Executed 9 statements in 145µs |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1 | 1 | 1 | 12µs | 24µs | BEGIN@21 | PPI::Document::Fragment::
1 | 1 | 1 | 8µs | 8µs | BEGIN@25 | PPI::Document::Fragment::
1 | 1 | 1 | 7µs | 34µs | BEGIN@24 | PPI::Document::Fragment::
1 | 1 | 1 | 4µs | 4µs | BEGIN@22 | PPI::Document::Fragment::
0 | 0 | 0 | 0s | 0s | index_locations | PPI::Document::Fragment::
0 | 0 | 0 | 0s | 0s | scope | PPI::Document::Fragment::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package PPI::Document::Fragment; | ||||
2 | |||||
3 | =pod | ||||
4 | |||||
5 | =head1 NAME | ||||
6 | |||||
7 | PPI::Document::Fragment - A fragment of a Perl Document | ||||
8 | |||||
9 | =head1 DESCRIPTION | ||||
10 | |||||
11 | In some situations you might want to work with a fragment of a larger | ||||
12 | document. C<PPI::Document::Fragment> is a class intended for this purpose. | ||||
13 | It is functionally almost identical to a normal L<PPI::Document>, except | ||||
14 | that it is not possible to get line/column positions for the elements | ||||
15 | within it, and it does not represent a scope. | ||||
16 | |||||
17 | =head1 METHODS | ||||
18 | |||||
19 | =cut | ||||
20 | |||||
21 | 2 | 22µs | 2 | 36µs | # spent 24µs (12+12) within PPI::Document::Fragment::BEGIN@21 which was called:
# once (12µs+12µs) by PPI::Document::BEGIN@86 at line 21 # spent 24µs making 1 call to PPI::Document::Fragment::BEGIN@21
# spent 12µs making 1 call to strict::import |
22 | 2 | 20µs | 1 | 4µs | # spent 4µs within PPI::Document::Fragment::BEGIN@22 which was called:
# once (4µs+0s) by PPI::Document::BEGIN@86 at line 22 # spent 4µs making 1 call to PPI::Document::Fragment::BEGIN@22 |
23 | |||||
24 | 2 | 28µs | 2 | 61µs | # spent 34µs (7+27) within PPI::Document::Fragment::BEGIN@24 which was called:
# once (7µs+27µs) by PPI::Document::BEGIN@86 at line 24 # spent 34µs making 1 call to PPI::Document::Fragment::BEGIN@24
# spent 27µs making 1 call to vars::import |
25 | # spent 8µs within PPI::Document::Fragment::BEGIN@25 which was called:
# once (8µs+0s) by PPI::Document::BEGIN@86 at line 28 | ||||
26 | 1 | 300ns | $VERSION = '1.215'; | ||
27 | 1 | 14µs | @ISA = 'PPI::Document'; | ||
28 | 1 | 60µs | 1 | 8µs | } # spent 8µs making 1 call to PPI::Document::Fragment::BEGIN@25 |
29 | |||||
- - | |||||
34 | ##################################################################### | ||||
35 | # PPI::Document Methods | ||||
36 | |||||
37 | =pod | ||||
38 | |||||
39 | =head2 index_locations | ||||
40 | |||||
41 | Unlike when called on a PPI::Document object, you should not be attempting | ||||
42 | to find locations of things within a PPI::Document::Fragment, and thus any | ||||
43 | call to the C<index_locations> will print a warning and return C<undef> | ||||
44 | instead of attempting to index the locations of the Elements. | ||||
45 | |||||
46 | =cut | ||||
47 | |||||
48 | # There's no point indexing a fragment | ||||
49 | sub index_locations { | ||||
50 | warn "Useless attempt to index the locations of a document fragment"; | ||||
51 | undef; | ||||
52 | } | ||||
53 | |||||
- - | |||||
58 | ##################################################################### | ||||
59 | # PPI::Element Methods | ||||
60 | |||||
61 | # We are not a scope boundary | ||||
62 | ### XS -> PPI/XS.xs:_PPI_Document_Fragment__scope 0.903+ | ||||
63 | sub scope { '' } | ||||
64 | |||||
65 | 1 | 2µs | 1; | ||
66 | |||||
67 | =pod | ||||
68 | |||||
69 | =head1 TO DO | ||||
70 | |||||
71 | Integrate this into the rest of PPI so it has actual practical uses. The most | ||||
72 | obvious would be to implement arbitrary cut/copy/paste more easily. | ||||
73 | |||||
74 | =head1 SUPPORT | ||||
75 | |||||
76 | See the L<support section|PPI/SUPPORT> in the main module. | ||||
77 | |||||
78 | =head1 AUTHOR | ||||
79 | |||||
80 | Adam Kennedy E<lt>adamk@cpan.orgE<gt> | ||||
81 | |||||
82 | =head1 COPYRIGHT | ||||
83 | |||||
84 | Copyright 2001 - 2011 Adam Kennedy. | ||||
85 | |||||
86 | This program is free software; you can redistribute | ||||
87 | it and/or modify it under the same terms as Perl itself. | ||||
88 | |||||
89 | The full text of the license can be found in the | ||||
90 | LICENSE file included with this module. | ||||
91 | |||||
92 | =cut |