#!/usr/bin/perl

# Idiom #295 String to Enum

use feature 'say';

my %T = ( RED => 1, GREEN => 2, BLUE => 3 );

sub TryStrToEnum { my $s = shift; $T{uc $s} }

say '$T{BLUE}  is ', $T{BLUE};
say '$T{GREEN} is ', $T{GREEN};
say '$T{RED}   is ', $T{RED};
say '$T{XXX}   is ', $T{XXX};   # warns Use of uninitialized value in say

print "TryStrToEnum('Green') is ", TryStrToEnum('Green'),"\n";

say 'names are case sensitive';
say 'name conversion by TryStrToEnum is not case sensitive';
