use List::Util qw/shuffle/; my @order = shuffle qw/ continue 0 next 1 redo 2 last 3 /; #### my @keyorder = shuffle qw/ continue next redo last /; #### sub continue () { 0 } sub next () { 1 } sub redo () { 2 } sub last () { 3 } #### our $clist; BEGIN { $clist = {continue=>0, next=>1, redo=>2, last=>3 } } use constant $clist;