| Server IP : 127.0.0.1 / Your IP : 216.73.216.48 Web Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12 System : Windows NT DESKTOP-3H4FHQJ 10.0 build 19045 (Windows 10) AMD64 User : win 10 ( 0) PHP Version : 8.2.12 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : D:/xamppkk/perl/vendor/lib/MooseX/Declare/ |
Upload File : |
use strict;
use warnings;
package MooseX::Declare::Util;
# ABSTRACT: Common declarative utility functions
our $VERSION = '0.43';
use Sub::Exporter -setup => {
exports => [qw(
outer_stack_push
outer_stack_pop
outer_stack_peek
)],
};
#pod =head1 DESCRIPTION
#pod
#pod This exporter collection contains the commonly used functions in
#pod L<MooseX::Declare>.
#pod
#pod All functions in this package will be exported upon request.
#pod
#pod =cut
my %OuterStack;
#pod =func outer_stack_push
#pod
#pod outer_stack_push (Str $file, Str $value)
#pod
#pod Pushes the C<$value> on the internal stack for the file C<$file>.
#pod
#pod =cut
sub outer_stack_push {
my ($file, $value) = @_;
push @{ $OuterStack{ $file } }, $value;
return $value;
}
#pod =func outer_stack_pop
#pod
#pod outer_stack_pop (Str $file)
#pod
#pod Removes one item from the internal stack of the file C<$file>.
#pod
#pod =cut
sub outer_stack_pop {
my ($file) = @_;
return undef
unless @{ $OuterStack{ $file } || [] };
return pop @{ $OuterStack{ $file } };
}
#pod =func outer_stack_peek
#pod
#pod outer_stack_peek (Str $file)
#pod
#pod Returns the topmost item in the internal stack for C<$file> without removing
#pod it from the stack.
#pod
#pod =cut
sub outer_stack_peek {
my ($file) = @_;
return undef
unless @{ $OuterStack{ $file } || [] };
return $OuterStack{ $file }[-1];
}
#pod =head1 SEE ALSO
#pod
#pod =for :list
#pod * L<MooseX::Declare>
#pod
#pod =cut
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
MooseX::Declare::Util - Common declarative utility functions
=head1 VERSION
version 0.43
=head1 DESCRIPTION
This exporter collection contains the commonly used functions in
L<MooseX::Declare>.
All functions in this package will be exported upon request.
=head1 FUNCTIONS
=head2 outer_stack_push
outer_stack_push (Str $file, Str $value)
Pushes the C<$value> on the internal stack for the file C<$file>.
=head2 outer_stack_pop
outer_stack_pop (Str $file)
Removes one item from the internal stack of the file C<$file>.
=head2 outer_stack_peek
outer_stack_peek (Str $file)
Returns the topmost item in the internal stack for C<$file> without removing
it from the stack.
=head1 SEE ALSO
=over 4
=item *
L<MooseX::Declare>
=back
=head1 AUTHOR
Florian Ragwitz <rafl@debian.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2008 by Florian Ragwitz.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut