#!/usr/bin/env perl use utf8; use Utils; use strict; use warnings; package CompassPoint { use Class::Enum qw( NORTH EAST SOUTH WEST ); } sub compass_point_to_string { my ($c) = @_; my $result = ""; if ($c == CompassPoint::NORTH) { $result = "North"; } elsif ($c == CompassPoint::EAST) { $result = "East"; } elsif ($c == CompassPoint::SOUTH) { $result = "South"; } elsif ($c == CompassPoint::WEST) { $result = "West"; } return $result; } sub turn_right { my ($c) = @_; if ($c == CompassPoint::NORTH) { return CompassPoint::EAST; } elsif ($c == CompassPoint::EAST) { return CompassPoint::SOUTH; } elsif ($c == CompassPoint::SOUTH) { return CompassPoint::WEST; } else { return CompassPoint::NORTH; } } MAIN: { binmode(STDOUT, ":utf8"); binmode(STDERR, ":utf8"); binmode(STDIN, ":utf8"); my $cp1 = CompassPoint::NORTH; print "cp1: ", Utils::enumToString($cp1), "\n"; print "SOUTH: ", compass_point_to_string(CompassPoint::SOUTH), "\n"; print "turnRight(cp1): ", compass_point_to_string(turn_right($cp1)), "\n"; my $CP2 = CompassPoint::EAST; if ($cp1 == $CP2) { print "cp1 == cp2\n"; } else { print "cp1 != cp2\n"; } $cp1 = $CP2; if ($cp1 == $CP2) { print "cp1 == cp2\n"; } else { print "cp1 != cp2\n"; } }