PerlでDBからデータを取得したときに結果をハッシュに入れたいのですが、
もうちょっとスマートになりませんか?

<要件>
1.取得するカラムが増えたときのため、カラム名はSQL文に直接書かずに外部化する
2.最終的にハッシュとして取得したい
3.取得するデータは1つ以下、但し、0の場合の処理は今回は考慮しなくてよい

@col = (
  "cpu" ,
  "mem" ,
  "hdd" ,
);

%info = ();

$num = @col;

$sqlbuf = "SELECT " . join( "," , @col ) . " FROM pc LIMIT 1";
$sth = $dbh->prepare( $sqlbuf );
$res = $sth->execute();
@dat = $sth->fetchrow_array();
for( $i=0;$i<$num;$i++ ){
  $info{$col[$i]} = $dat[$i];
}
$sth->finish();