#!/usr/bin/perl $test = 12; print "Days mask is $test.\n"; our %daycode = ( Sunday => 1, Monday => 2, Tuesday => 4, Wednesday => 8, Thursday => 16, Friday => 32, Saturday => 64, ); our %codeday; @codeday{ values(%daycode)} = keys %daycode; sub days { my $mask = shift || 127; sort { $daycode{$a} <=> $daycode{$b} } grep { $mask & $daycode{$_} } keys %daycode; } @newtest = days($test); foreach $num (@newtest) { print "$newtest[$num]\n"; }