#!perl
sub
test : event_cb {
push
@{
$_
[0]->{x}},
'middle'
}
sub
after
: event_cb(
after
, test) {
push
@{
$_
[0]->{x}},
'after'
}
sub
xtest : event_cb( , test) {
push
@{
$_
[0]->{x}},
'aftermiddle'
}
sub
test : event_cb {
push
@{
$_
[0]->{x}},
'middle'
}
sub
test_last : event_cb(-1, test) {
push
@{
$_
[0]->{x}},
'after'
}
sub
test_first : event_cb(1, test) {
push
@{
$_
[0]->{x}},
'before'
}
my
$f
= foo->new;
$f
->reg_cb (
test
=>
100
=>
sub
{
push
@{
$_
[0]->{x}},
'first'
});
$f
->xtest;
is (
join
(
','
, @{
$f
->{x}}),
'first,middle,aftermiddle,after'
,
'event aliases work'
);
my
$f2
= meh->new;
$f2
->reg_cb (
test
=> -0.
5
=>
sub
{
push
@{
$_
[0]->{x}},
'shortaftermiddle'
});
$f2
->event (
'test'
);
is (
join
(
','
, @{
$f2
->{x}}),
'before,middle,shortaftermiddle,after'
,
'event aliases with prios work'
);
eval
"package meh; sub test_xx :event_cb :xx { }"
;