http://www.perlmonks.org?node_id=1023220


in reply to Re^7: Relational table with perl DBI
in thread Relational table with perl DBI

That was what @{$hr_output}{@fields} was supposed to catch....it gives you the values of the hash in the order of @fields.
You don't have to follow the exact same order as the fields are defined in the table, but you will have to follow the same order you specified in the INSERT-query, which is why I used @fields a lot at that point.
Also, it seems I made a slight mistake for the last_insert_id-select. It should be<br? my $sth_select_last_insert_id = $dbh->prepare( qq( SELECT LAST_INSERT_ID() )); (Note the added ()).
The other errors are all a result of this. First the query fails (syntax error), which results in an undef result.
But when executing it (at my $article_id = ($dbh->selectcol_arrayref($sth_select_last_insert_id))->[0]; I immediately dereference it. But undef is not an arrayref, so that won't do (and perl complains about that).
Then when trying to insert the undef (which is NULL when stored in a database) in the article_event_index table, an error occurs, which leaves $inserted_records containing undef. When comparing that to a value, perl warns (but proceeds anyway) about that.