← Index
NYTProf Performance Profile   « line view »
For ../prof.pl
  Run on Wed Dec 14 15:33:55 2022
Reported on Wed Dec 14 15:40:04 2022

Filename/Users/ether/.perlbrew/libs/36.0@std/lib/perl5/Data/Perl/Collection/Array/MooseLike.pm
StatementsExecuted 11 statements in 635µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
111534µs818µsData::Perl::Collection::Array::MooseLike::::BEGIN@7Data::Perl::Collection::Array::MooseLike::BEGIN@7
11144µs161µsData::Perl::Collection::Array::MooseLike::::BEGIN@5Data::Perl::Collection::Array::MooseLike::BEGIN@5
11114µs74µsData::Perl::Collection::Array::MooseLike::::BEGIN@8Data::Perl::Collection::Array::MooseLike::BEGIN@8
0000s0sData::Perl::Collection::Array::MooseLike::::__ANON__[:20]Data::Perl::Collection::Array::MooseLike::__ANON__[:20]
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Data::Perl::Collection::Array::MooseLike;
210s$Data::Perl::Collection::Array::MooseLike::VERSION = '0.001009';
3# ABSTRACT: Collection::Array subclass that simulates Moose's native traits.
4
5341µs3278µs
# spent 161µs (44+117) within Data::Perl::Collection::Array::MooseLike::BEGIN@5 which was called: # once (44µs+117µs) by Module::Runtime::require_module at line 5
use strictures 1;
# spent 161µs making 1 call to Data::Perl::Collection::Array::MooseLike::BEGIN@5 # spent 92µs making 1 call to strictures::import # spent 25µs making 1 call to strictures::VERSION
6
72348µs2919µs
# spent 818µs (534+284) within Data::Perl::Collection::Array::MooseLike::BEGIN@7 which was called: # once (534µs+284µs) by Module::Runtime::require_module at line 7
use Role::Tiny::With;
# spent 818µs making 1 call to Data::Perl::Collection::Array::MooseLike::BEGIN@7 # spent 101µs making 1 call to Exporter::import
82233µs2134µs
# spent 74µs (14+60) within Data::Perl::Collection::Array::MooseLike::BEGIN@8 which was called: # once (14µs+60µs) by Module::Runtime::require_module at line 8
use Class::Method::Modifiers;
# spent 74µs making 1 call to Data::Perl::Collection::Array::MooseLike::BEGIN@8 # spent 60µs making 1 call to Exporter::import
9
1012µs14.40mswith 'Data::Perl::Role::Collection::Array';
# spent 4.40ms making 1 call to Role::Tiny::With::with
11
12around 'splice' => sub {
13 my $orig = shift;
14 my @res = $orig->(@_);
15
16 # support both class instance method invocation style
17 @res = blessed($res[0]) && $res[0]->isa('Data::Perl::Collection::Array') ? $res[0]->flatten : @res;
18
19 wantarray ? @res : $res[-1];
2015µs1226µs};
# spent 226µs making 1 call to Class::Method::Modifiers::around
21
2216µs1;
23
24=pod
25
26=encoding UTF-8
27
28=head1 NAME
29
30Data::Perl::Collection::Array::MooseLike - Collection::Array subclass that simulates Moose's native traits.
31
32=head1 VERSION
33
34version 0.001009
35
36=head1 SYNOPSIS
37
38 use Data::Perl::Collection::Array::MooseLike;
39
40 my $array = Data::Perl::Collection::Array::MooseLike->new(qw/a b c d/);
41
42 my $scalar_context = $array->splice(0, 2); # removes and returns b
43
44 my @list_context = $array->splice(0, 2); # returns and removes (b, c)
45
46=head1 DESCRIPTION
47
48This class provides a wrapper and methods for interacting with an array. All
49methods are written to emulate/match existing behavior that exists with Moose's
50native traits.
51
52=head1 DIFFERENCES IN FUNCTIONALITY
53
54=over 4
55
56=item B<splice($args, ...)>
57
58Just like Perl's builtin splice. In scalar context, this returns the last
59element removed, or undef if no elements were removed. In list context, this
60returns all the elements removed from the array.
61
62This method requires at least one argument.
63
64=back
65
66=head1 SEE ALSO
67
68=over 4
69
70=item * L<Data::Perl>
71
72=item * L<Data::Perl::Role::Collection::Array>
73
74=back
75
76=head1 AUTHOR
77
78Toby Inkster <tobyink@cpan.org>
79
80=head1 COPYRIGHT AND LICENSE
81
82This software is copyright (c) 2020 by Matthew Phillips <mattp@cpan.org>.
83
84This is free software; you can redistribute it and/or modify it under
85the same terms as the Perl 5 programming language system itself.
86
87=cut
88
89__END__