in reply to Is Perl scary or is it me?

It's just you. ;-) Relax, you'll get over it.

But to return to the point brother FU brings up above, it's a question of what you want to emphasize. I think you're talking about how %hash gets populated (a terrible name for the variable, by the way; try to think of a better one), so I might even offer a hybrid:

my %hash; for ( @{GetQueryTable('all_records_for_report', 137)} ) { $hash{ join(':', $_->{Computer}, $_->{Bulletin}, ( $_->{Product} || "" ), $_->{Status} ) } = $_; }
If you can think of a more descriptive name for $_, it might clarify your intention quite a bit.

As Gerry Sussman explained,

"The important thing about a program is that it's something you can show to people, and they can read it and they can learn something from it ..."
It's only incidental that computers execute it.