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

emgi has asked for the wisdom of the Perl Monks concerning the following question:

As a very humble and fresh monk I come here to seek some guidance on accomplishing the following: My current project aims to aid in ebookmanagement. It does a lookup in an SQLite database for e-books matching the search criteria. The next step is where I'm stuck right now. The results from the database search need to be returned to the program. An array seems the most obvious solution and while the results consist of a set of columns, it should be a multidimensional one where @results[0] 0-7 holds the first entry, @results1 0-7 the next one and so on. However, due to my poor skills on array's I am unable to put the results into such an array. For a start I tried to put the book's title into elementx 1 of the array but no luck.

$sth = $dbh->prepare("select author, title, language, format, filename +, fullpath, category, tags from ebooks where author like'%$searchauth +%' and title like'%$searchtitle%' and language='$searchlang' and form +at='$searchfmt' and category like'%$searchcategory%' and tags like'%$ +searchtags%' LIMIT 50;");<br/>
(Above is the working query, just for informational purposes.)
Below is my code which can certainly be improved. Please guide me!
$sth->execute(); $loopcount = 0; while ($row = $sth->fetchrow_arrayref()) { # print "@$row[0] @$row[1] @$row[2] @$row[3] \n"; print "File found: @$row[4] \n"; # print "Category: @$row[6] Tags: @$row[7]\n\n"; $author = @$row[0]; $title = @$row[1]; $results[$loopcount] [1] = (@$row[1]); THIS LINE IS NOT WORKING. $language = @$row[2]; $format = @$row[3]; $filename = @$row[4]; $fullpath = @$row[5]; $category = @$row[6]; $tags = @$row[7]; print "$loopcount $results[$loopcount] [1]"; $loopcount++; }
When removing the # from the lines containing the print statements, the output is what you would expect; i.e. results are being returned from the query. My problem is how to put them into the array. I do use 'strict' and the program returns no syntax errors. /emgi