my @data; while ($EDS_DB->FetchRow()){ my %data = $EDS_DB->DataHash(); push @data, \%data; } # if @data doesn't have > 1 element here, check $EDB_DB->Error for the reason foreach my $data (@data){ my $sql = sprintf "INSERT INTO Servers (Server_Name) VALUES ('%s')", $data->{Server_Name}; warn "SQL: " . $sql; my $rc = $EDS_DB->Sql($sql); warn "Return Code: '$rc'"; warn "Error String: " . $EDS_DB->Error; }