diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-02-25 01:55:10 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-02-25 01:55:10 -0600 |
commit | 3d937997d2563f00b05d842180c47a57f0d59b29 (patch) | |
tree | 30b86c394869e8f6b52298798996ba47a1647b8b | |
parent | 3006cbd5e19edfb2397e71b34e3995d0dc5f2df3 (diff) | |
download | term-filter-3d937997d2563f00b05d842180c47a57f0d59b29.tar.gz term-filter-3d937997d2563f00b05d842180c47a57f0d59b29.zip |
better calling convention for the callbacks
-rw-r--r-- | examples/nethack | 6 | ||||
-rw-r--r-- | lib/Term/Filter.pm | 4 |
2 files changed, 6 insertions, 4 deletions
diff --git a/examples/nethack b/examples/nethack index eeef69b..deee504 100644 --- a/examples/nethack +++ b/examples/nethack @@ -7,12 +7,14 @@ use Term::Filter; my $term = Term::Filter->new( callbacks => { munge_input => sub { - my ($event, $got) = @_; + my $self = shift; + my ($got) = @_; $got =~ s/\ce/E- Elbereth\n/g; $got; }, munge_output => sub { - my ($event, $got) = @_; + my $self = shift; + my ($got) = @_; $got =~ s/(Elbereth)/\e[35m$1\e[m/g; $got; }, diff --git a/lib/Term/Filter.pm b/lib/Term/Filter.pm index 519855d..b879fb3 100644 --- a/lib/Term/Filter.pm +++ b/lib/Term/Filter.pm @@ -14,10 +14,10 @@ has callbacks => ( sub _callback { my $self = shift; - my ($event) = @_; + my ($event, @args) = @_; my $callback = $self->callbacks->{$event}; return unless $callback; - return $callback->(@_); + return $self->$callback(@args); } sub _has_callback { |