☞ | ![]() ![]() |
48 |
sub get_observers { my ( $item ) = @_; my $class = ref($item) || $item; my @observers = ($class->_obs_get_observers_scoped, $class->_obs_get_parent_observers); push @observers, $item->_obs_get_observers_scoped if ref $item; return @observers; }
This is one of many examples that's simplified by ->direct_observers
The idea here: One call for direct observers, one for class observers
sub get_observers { my $self = shift; my @o = $self->_class_observers; push @o, @{$self->direct_observers} if ref $self; return _uniq(@o); }
I think this is simpler
10 lines became 5
☞ | ![]() |
☞ |