$hoge =~ /$_/ and $check[$_] = 'checked' for qw(1 2 3);
とか
$check[$1] = 'checked' while $hoge =~ /([1-3])/g;
とか?
二番目のほうは同じ数字が複数回出てくる場合無駄が出るね
逆に一番目のほうは三回別のパターンで頭から調べなおしだから、
それ以外の場合では効率が悪そうな気がする。