… | |
… | |
13 | chdir "/etc"; |
13 | chdir "/etc"; |
14 | |
14 | |
15 | code_that_might_die_or_does_other_fun_stuff; |
15 | code_that_might_die_or_does_other_fun_stuff; |
16 | } |
16 | } |
17 | |
17 | |
|
|
18 | # create an object that, when the last reference to it is gone, |
|
|
19 | # invokes the given codeblock: |
|
|
20 | my $guard = guard { print "destroyed!\n" }; |
|
|
21 | undef $guard; # probably destroyed here |
|
|
22 | |
18 | =head1 DESCRIPTION |
23 | =head1 DESCRIPTION |
19 | |
24 | |
20 | This module implements so-called "guards". A guard is something (usually |
25 | This module implements so-called "guards". A guard is something (usually |
21 | an object) that "guards" a resource, ensuring that it is cleaned up when |
26 | an object) that "guards" a resource, ensuring that it is cleaned up when |
22 | expected. |
27 | expected. |