<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div class="h5">
> ÎÅËÉÊ ËÏÄ:<br>
><br>
> sub method<br>
> {<br>
> š šmy $self = shift;<br>
> š š...<br>
> š š$self->{handle} = AnyEvent::Handle fh => $fh, on_error => sub {<br>
> $self->{error} = $! };<br>
> š š...<br>
> }<br>
><br>
> ÐÏÌÕÞÁÅÔÓÑ ÞÔÏ ËÁÌÌÂÅË ÃÅÐÌÑÅÔ ÓÓÙÌËÕ ÎÁ $self É ÉÚ ÚÁ ÎÅÇÏ ÄÅÓÔÒÕËÔÏÒ<br>
> ×ÙÚ×ÁÎ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÄÏ ÔÅÈ ÐÏÒ ÐÏËÁ handle ÎÅ ÕÎÉÞÔÏÖÉÔÓÑ.<br>
> × ÓÌÕÞÁÅ Ó ÐÒÏÓÔÏ ÓÓÙÌËÁÍÉ - ÐÏÎÑÔÎÏ: weaken ÎÁ ÎÉÈ. Á ÚÄÅÓØ ËÕÄÁ ÍÏÖÎÏ<br>
> weaken ÎÁÔÒÁ×ÉÔØ ÞÔÏÂÙ ÄÅÓÔÒÕËÔÏÒ Õ ÔÁËÏÇÏ ÏÂßÅËÔÁ ÒÁÂÏÔÁÌ?<br>
<br>
</div></div>ðÏÓÌÅ $self = shift; ÄÏÂÁ×ÉÔØ weaken($self);<br></blockquote></div><br>÷ ÜÔÏÍ ÓÌÕÞÁÅ ÅÓÌÉ ÜÔÁ ÒÁÂÏÔÁ ÄÅÌÁÅÔÓÑ ×ÎÕÔÒÉ ËÏÎÓÔÒÕËÔÏÒÁ, ÔÏ ÄÏÂÁ×ÌÅÎÉÅ ÔÁËÏÇÏ weaken ÐÒÉ×ÏÄÉÔ Ë ÔÏÍÕ ÞÔÏ ×ÍÅÓÔÏ ÕËÁÚÁÔÅÌÑ ÎÁ ÏÂßÅËÔ ×ÏÚ×ÒÁÝÁÅÔÓÑ ËÁËÁÑ-ÔÏ ÁÈÉÎÅÑ.<br>
<br>×ÏÔ ÔÁËÏÊ ÔÅÓÔ:<br><br>#!/usr/bin/perl<br><br>use warnings;<br>use strict;<br><br>use utf8;<br>use open qw(:std :utf8);<br><br>package TestW;<br>use AnyEvent::Handle;<br>use Scalar::Util qw(weaken);<br><br><br>sub new {<br>
ššš my ($class, $fh) = @_;<br><br>ššš my $self = bless {š } => $class;<br>#šššš weaken $self;<br>ššš $self->{handle} = new AnyEvent::Handle<br>ššššššš fh => $fh,<br>ššššššš on_error => sub { $self->{error} = $! };<br>
ššš return $self;<br>}<br><br>package main;<br>use Data::Dumper;<br><br>my $o = new TestW(\*STDIN);<br>print Dumper $o;<br><br>ÐÅÞÁÔÁÅÔ ÎÁ ×ÙÈÏÄÅ ÓÌÅÄÕÀÝÅÅ:<br><br>$VAR1 = bless( {<br>šššššššššššššššš 'handle' => bless( {<br>
ššššššššššššššššššššššššššššššššššš '_activity' => '1298875336.78856',<br>ššššššššššššššššššššššššššššššššššš '_ractivity' => '1298875336.78856',<br>ššššššššššššššššššššššššššššššššššš '_wactivity' => '1298875336.78856',<br>
ššššššššššššššššššššššššššššššššššš 'fh' => \*::STDIN,<br>ššššššššššššššššššššššššššššššššššš 'oobinline' => 1,<br>ššššššššššššššššššššššššššššššššššš 'on_error' => sub { "DUMMY" }<br>
ššššššššššššššššššššššššššššššššš }, 'AnyEvent::Handle' )<br>šššššššššššššš }, 'TestW' );<br><br>ÔÅÐÅÒØ ÅÓÌÉ ÒÁÓËÏÍÅÎÔÉÒÏ×ÁÔØ weaken, ÔÏ ÏÂßÅËÔ ÐÒÅ×ÒÁÔÉÔÓÑ × ÐÒÏÓÔÏÊ ÈÅÛ:<br><br>$VAR1 = {<br>ššššššššš 'handle' => bless( {<br>
šššššššššššššššššššššššššššš '_activity' => '1298875430.28919',<br>šššššššššššššššššššššššššššš '_ractivity' => '1298875430.28919',<br>šššššššššššššššššššššššššššš '_wactivity' => '1298875430.28919',<br>
šššššššššššššššššššššššššššš 'fh' => \*::STDIN,<br>šššššššššššššššššššššššššššš 'oobinline' => 1,<br>šššššššššššššššššššššššššššš 'on_error' => sub { "DUMMY" }<br>šššššššššššššššššššššššššš }, 'AnyEvent::Handle' )<br>
ššššššš };<br><br>É ËÁË ÂÙÔØ?<br>Perl 5.10.1<br>