Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 88
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 215
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 216
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 217
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 218
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 219
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 220
package Scope::Guard;
use strict;
use warnings;
use Carp qw(confess);
use Exporter ();
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(guard scope_guard);
our $VERSION = '0.21';
sub new {
confess "Can't create a Scope::Guard in void context" unless (defined wantarray);
my $class = shift;
my $handler = shift() || die 'Scope::Guard::new: no handler supplied';
my $ref = ref $handler || '';
die "Scope::Guard::new: invalid handler - expected CODE ref, got: '$ref'"
unless ref($handler) eq 'CODE';
bless [ 0, $handler ], ref $class || $class;
}
sub dismiss {
my $self = shift;
my $dismiss = @_ ? shift : 1;
$self->[0] = $dismiss;
}
sub guard(&) { __PACKAGE__->new(shift) }
sub scope_guard($) { __PACKAGE__->new(shift) }
sub DESTROY {
my $self = shift;
my ($dismiss, $handler) = @$self;
$handler->() unless ($dismiss);
}
1;
__END__
=pod
=head1 NAME
Scope::Guard - lexically-scoped resource management
=head1 SYNOPSIS
my $guard = guard { ... };
# or
my $guard = scope_guard \&handler;
# or
my $guard = Scope::Guard->new(sub { ... });
$guard->dismiss(); # disable the handler
=head1 DESCRIPTION
This module provides a convenient way to perform cleanup or other forms of resource
management at the end of a scope. It is particularly useful when dealing with exceptions:
the C constructor takes a reference to a subroutine that is guaranteed to
be called even if the thread of execution is aborted prematurely. This effectively allows
lexically-scoped "promises" to be made that are automatically honoured by perl's garbage
collector.
For more information, see: L
=head1 METHODS
=head2 new
my $guard = Scope::Guard->new(sub { ... });
# or
my $guard = Scope::Guard->new(\&handler);
The C method creates a new C object which calls the supplied handler when its C method is
called, typically at the end of the scope.
=head2 dismiss
$guard->dismiss();
# or
$guard->dismiss(1);
C detaches the handler from the C object. This revokes the "promise" to call the
handler when the object is destroyed.
The handler can be re-enabled by calling:
$guard->dismiss(0);
=head1 EXPORTS
=head2 guard
C takes a block and returns a new C object. It can be used
as a shorthand for:
Scope::Guard->new(...)
e.g.
my $guard = guard { ... };
Note: calling C anonymously, i.e. in void context, will raise an exception.
This is because anonymous guards are destroyed B
(rather than at the end of the scope), which is unlikely to be the desired behaviour.
=head2 scope_guard
C is the same as C, but it takes a code ref rather than a block.
e.g.
my $guard = scope_guard \&handler;
or:
my $guard = scope_guard sub { ... };
or:
my $guard = scope_guard $handler;
As with C, calling C in void context will raise an exception.
=head1 VERSION
0.21
=head1 SEE ALSO
=over
=item * L
=item * L
=item * L
=item * L
=item * L
=item * L
=item * L
=item * L
=item * L
=item * L
=item * L
=back
=head1 AUTHOR
chocolateboy
=head1 COPYRIGHT
Copyright (c) 2005-2015, chocolateboy.
This module is free software. It may be used, redistributed and/or modified under the same terms
as Perl itself.
=cut