日曜プログラマの思いつきでいいのなら……

@::event=(
sub{{実行したい処理} if (真偽判定文)},
sub{{実行したい処理} if (真偽判定文)},
...
);

{$_() if $_} foreach (@::event);
のようにはできないのかな?