I needed a showing of choices in the drop down list according to some criterion (object status, in my case). So, I used an array slices instead use loop.I hope that this decision will be usefull somebody. ;)
my @list = ( [0, 'Zero'], [1, 'One'], [2, 'Two'], [3, 'Three'],
[4, 'Four'], [5, 'Five'], [6, 'Six'] );
SWITCH: for ($some_obj->get_status) {
/0/ && do { @list = @list[0, 6]; last; };
/1/ && do { @list = @list[0..2]; last; };
/2/ && do { @list = @list[2..5]; last; };
/3/ && do { @list = @list[3]; last; };
/4/ && do { @list = @list[4]; last; };
/5/ && do { @list = @list[2, 5]; last; };
/6/ && do { @list = @list[6]; last; };
@list = ();
}
$"=', ';
print "Result: status = ".$some_obj->get_status."; list=@list";