May 26, 2018

Method-ordered multimethod dispatch

You can define multimethods with the “multi” declarator

use ClassMultimethodsPure;

multi collide => 'Bullet', 'Ship' => sub 
    my $a, $b = @_;  ...

multi collide => 'Ship', 'Asteroid' => sub 
    my $a, $b = @_;  ...

It is usually wise to put such declarations within a BEGIN block, so they behave more like Perl treats subs you can call them without parentheses and you can use them before you define them.

WWW http//