[Warszawa-pm] Scope::Guard

Piotr Roszatycki piotr.roszatycki w gmail.com
Pią, 12 Paź 2012, 00:50:29 PDT


A to jest dobre. Teraz mój kod mógłby wyglądać mniej-więcej:

package My::Class;
use Moose;
has 'ref' => (is => 'rw', clearer => 'clear_ref');
sub DISPOSE { $_[0]->clear_ref }

package main;
using my $obj1 = My::Class->new();
using my $obj2 = My::Class->new();
$obj1->ref($obj2);
$obj2->ref($obj1);

a podejrzewam, że w Perlu 5.16 takie słowo kluczowe dałoby się
zaimplementować. Z użyciem Devel::Declare pewnie i w starszych.

Pzdr.

W dniu 12 października 2012 09:09 użytkownik Piotr Fusik
<piotr w fusik.info> napisał:
> W C# jest coś w rodzaju Score::Guard:
>
> using (Stream s = File.OpenRead("foo")) {
> ...
> }
>
> co jest cukrem składniowym dla:
>
> Stream s = File.OpenRead("foo");
> try {
>   ...
> }
> finally {
>    s.Dispose(); // jawne wywołanie metody, która ma zwolnić zewnętrzne
> zasoby
> }

-- 
Piotr Roszatycki


Więcej informacji o liście Warszawa-pm