Skip to content

Instantly share code, notes, and snippets.

@ynonp
Created July 2, 2012 18:40
Show Gist options
  • Save ynonp/3034824 to your computer and use it in GitHub Desktop.
Save ynonp/3034824 to your computer and use it in GitHub Desktop.
package Paper; use Moose;
package Scissors; use Moose;
package Rock; use Moose;
package Game;
use Moose;
use MooseX::MultiMethods;
multi method play (Paper $x, Rock $y) { 1 }
multi method play (Scissors $x, Paper $y) { 1 }
multi method play (Rock $x, Scissors $y) { 1 }
multi method play (Any $x, Any $y) { 0 }
my $game = Game->new;
print $game->play(Paper->new, Rock->new); # 1, Paper covers Rock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment