Здравствуйте, помогите разобраться с задачей..
Есть массив
my @arrset = ('1_10', '1_19', '1_28', '3_12', '3_21', '3_30', '4_13', '4_22', '4_31', '5_14', '5_23', '5_32', '6_15', '6_24', '6_33', '7_16', '7_25', '7_34', '10_19', '10_28', '12_21', '12_30', '13_22', '13_31', '14_23', '14_32', '15_24', '15_33', '16_25', '16_34', '17_26', '17_35', '18_27', '18_36', '19_28', '21_30', '22_31', '23_32', '24_33', '25_34', '26_35', '27_36', '8_17', '8_26', '8_35', '9_18', '9_27', '9_36');
Есть функция:
sub adsp {
$rand = rand @arrset;
$rand_num = $arrset[$rand];
$rand_num =~ /^(\d+)_(\d+)$/;
$buf = $1;
$buf2 = $2;
$arrset = [grep { /^\d+_$buf$/ } @$arrset];
$arrset = [grep { /^\d+_$buf2$/ } @$arrset];
$arrset = [grep { /^${buf}_\d+$/ } @$arrset];
$arrset = [grep { /^${buf2}_\d+$/ } @$arrset];
return $rand_num;
}
По идее должно удалить все элементы содержащие хоть половинку(цифру) из рандом выбранного элемента массива. На практике не работает, подскажите в чем моя ошибка?