in reply to change value in run time

Well, you can do it in a sub, and call the sub with $count as an argument, or use a tied variable, or even an overloaded constant. But somewhere, you need to write down the logic anyway, so why not keep it in the loop? Now, I'd use interpolation instead of concatenation. I'd write something like:
my $retrieve_ref = $sbh->fetchall_arrayref; for (my $count = 0; $count < @$retrieve_ref; $count++) { $sheet->Range("A$count:B$count")->{Value} = $$retrieve_ref[$count] +; }
Or you could do something whacky:
{ package WakkaWakka; our @ISA = (ref $sheet); sub Range {$_[0]->SUPER::Range("A$_[1]:B$_[1]");} bless $sheet, __PACKAGE__; }
and then do the inner loop call as:
$sheet->Range($count)->{Value} = $$retrieve_ref[$count];