summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-02-25 01:55:10 -0600
committerJesse Luehrs <doy@tozt.net>2012-02-25 01:55:10 -0600
commit3d937997d2563f00b05d842180c47a57f0d59b29 (patch)
tree30b86c394869e8f6b52298798996ba47a1647b8b
parent3006cbd5e19edfb2397e71b34e3995d0dc5f2df3 (diff)
downloadterm-filter-3d937997d2563f00b05d842180c47a57f0d59b29.tar.gz
term-filter-3d937997d2563f00b05d842180c47a57f0d59b29.zip
better calling convention for the callbacks
-rw-r--r--examples/nethack6
-rw-r--r--lib/Term/Filter.pm4
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 {