Devel-ebug-Wx
view release on metacpan or search on metacpan
lib/Devel/ebug/Wx/Plugin/Listener/Base.pm view on Meta::CPAN
123456789101112131415161718192021222324252627use
strict;
__PACKAGE__->mk_accessors(
qw(_subscribed)
);
sub
add_subscription {
my
(
$self
,
$source
,
@args
) =
@_
;
$self
->_subscribed( [] )
unless
$self
->_subscribed;
$source
->add_subscriber(
@args
);
push
@{
$self
->_subscribed}, [
$source
,
@args
];
foreach
my
$ref
( @{
$self
->_subscribed->[-1]} ) {
next
unless
ref
$ref
;
weaken(
$ref
);
}
}
sub
delete_subscriptions {
my
(
$self
) =
@_
;
foreach
my
$sub
( @{
$self
->_subscribed || []} ) {
next
unless
$sub
->[0] &&
$sub
->[1];
# might have been destroyed
$sub
->[0]->delete_subscriber(
@$sub
[1 ..
$#$sub
] );
}
( run in 0.249 second using v1.01-cache-2.11-cpan-a5abf4f5562 )