ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Guard/Guard.pm
(Generate patch)

Comparing Guard/Guard.pm (file contents):
Revision 1.14 by root, Sat Dec 13 22:05:20 2008 UTC vs.
Revision 1.18 by root, Tue Jan 13 23:30:38 2009 UTC

10 # to go back to "/" no matter how myfun exits: 10 # to go back to "/" no matter how myfun exits:
11 sub myfun { 11 sub myfun {
12 scope_guard { chdir "/" }; 12 scope_guard { chdir "/" };
13 chdir "/etc"; 13 chdir "/etc";
14 14
15 call_function_that_might_die_or_other_fun_stuff; 15 code_that_might_die_or_does_other_fun_stuff;
16 } 16 }
17 17
18=head1 DESCRIPTION 18=head1 DESCRIPTION
19 19
20This module implements so-called "guards". A guard is something (usually 20This module implements so-called "guards". A guard is something (usually
37package Guard; 37package Guard;
38 38
39no warnings; 39no warnings;
40 40
41BEGIN { 41BEGIN {
42 $VERSION = '0.5'; 42 $VERSION = '1.01';
43 @ISA = qw(Exporter); 43 @ISA = qw(Exporter);
44 @EXPORT = qw(guard scope_guard); 44 @EXPORT = qw(guard scope_guard);
45 45
46 require Exporter; 46 require Exporter;
47 47
189=head1 THANKS 189=head1 THANKS
190 190
191Thanks to Marco Maisenhelder, who reminded me of the C<$Guard::DIED> 191Thanks to Marco Maisenhelder, who reminded me of the C<$Guard::DIED>
192solution to the problem of exceptions. 192solution to the problem of exceptions.
193 193
194=head1 SEE ALSO
195
196L<Scope::Guard> and L<Sub::ScopeFinalizer>, which actually implement
197dynamic, not scoped guards, and have a lot higher CPU, memory and typing
198overhead.
199
200L<Hook::Scope>, which has apparently never been finished and corrupts
201memory when used.
202
194=cut 203=cut
195 204

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines