if ($bool) {
$array->[$i] = $elem;
$str = "ほげ";
$new_array = $array;
} else {
$str = "ふが";
$new_array = $array;
}

上のコードを3項演算子で書こうと思ったのですが、値を返す前に1つ処理をさせる事は可能でしょうか?
my ($str, $new_array) = ($bool)? {$array->[$i]=$elem; ("ほげ", $array)}: ("ふが", $array);
#=> syntax error at _, near "; ("

my ($str, $new_array) = ($bool)? ("ほげ", $array, $array->[$i]=$elem;): ("ふが", $array);
# 今回はこれでたまたまうまく出来たのですが