I looked at Switch first, too. The thing with Switch 'fallthrough' is that it falls to the next condition, not the next bit of code (like it does in C).
If each successive condition is inclusive of all its predessors, you can do it with Switch 'fallthrough':
use Switch 'fallthrough';
sub test_switch {
my $val = shift;
switch ( $val ) {
case 10 { print "a"; }
case [9..10] { print "b"; }
case [8..10] { print "c"; }
case [7..10] { print "d"; }
case [6..10] { print "e"; }
case [5..10] { print "f"; }
case [4..10] { print "g"; }
case [3..10] { print "h"; }
case [2..10] { print "i"; }
case [1..10] { print "j"; }
}
}
This is hard to extend beyond the realm of successive integers, of course.