in reply to Can't locate object method "fetch_array"

When you post code, please wrap it in <code> tags to preserve formatting. See Writeup Formatting Tips.

Your error is happening because there is no fetch_array method. You likely mean fetchrow_array. See DBI for the documentation on DBI.

As a side note, I see you are doing direct variable interpolation into your SQL. This is generally a bad idea, because it makes tracking down bugs harder, requires you to deal with character escaping and opens you up to potential security issues. It is generally considered better to use prepare and bind_param. It also a good idea to test the results of database operations (perhaps with or die) a la:

use DBI; $sth = $dbh->prepare("SELECT Date,Time,Metal_Code,Metal_Desc,Weight,Pr +ice FROM History WHERE Date = ? ORDER by Date, Time, Metal_Code") or die "prepare failed: $DBI::errstr +"; $sth->bind_param(1,$RDate) or die "bind_param failed: $DBI::errstr"; $sth->execute() or die "execute failed: $DBI::errstr"; print "\nDetail Report for $MonthName[$mon] $day, $yr\n"; while (my @data = $sth->fetchrow_array()) { print @data, "\n"; }

See http://search.cpan.org/~timb/DBI-1.615/DBI.pm#Placeholders_and_Bind_Values in DBI.