sub mask2list { ( my $hex = shift ) =~ tr[.][]d; my $packed = pack 'h*', scalar reverse $hex; map{ vec( $packed, $_, 1 )? $_ : () } 0 .. 31; } my @tuners = mask2list( 'a6.55.45.0e' ); print "@tuners"; 1 2 3 8 10 14 16 18 20 22 25 26 29 31