for ( 0 .. $#fields) { $sql_data{'description'} = $fields[$_]{'description'}; $sql_data{'billing_code'} = $fields[$_]{'billing_code'}; $sql_data{'user_id'} = $fields[$_]{'user_id'}; $sql_data{'project_id'} = $fields[$_]{'project_id'}; $sql_data{'bad_proj'} = $fields[$_]{'bad_proj'}; $sql_data{'bad_bill'} = $fields[$_]{'bad_bill'}; $sql_data{'bad_user'} = $fields[$_]{'bad_user'}; $stmt = qq/INSERT INTO temp_sheet (/ . join(',', keys %sql_data ) . qq/) VALUES (/ . join(',', ('?') x keys %sql_data ) . qq/)/; $sth = $dbh->prepare($stmt); $sth->execute(values %sql_data ); }