Hi all
I am having trouble getting a subprocedure to work using parameter data passed
with shift
Here is the calling routine. It's a snippet. All the modules are called properly
sub mainmenu
{
my $self = shift;
my $dbh = $self->param('mydbh');
# Get the CGI query object so that you can use the CGI.pm modules.
my $q = $self->query();
# Setup the template to use for the output.
my $template = $self->load_tmpl('test2.tmpl.htm');
# call param to fill in the loop with the loop data by reference.
$template->param(db_loop => \GetOfficers());
# Output the template...
$template->output;
}
And this is the sub Getofficers:
sub GetOfficers
{
my $self = shift;
# my $self = @_;
my $dbh = $self->param('mydbh');
# Get the CGI query object so that you can use the CGI.pm modules.
my $q = $self->query();
my $sqlstr = '';
$sqlstr = <<SQLStmt;
SELECT Name FROM qryOfficer;
SQLStmt
#SELECT Family FROM tblOfficer;
# Get the database connection then Prepare and Execute the SQL Statement
my $sth = $dbh->prepare($sqlstr);
$sth->execute()
|| die "Could not execute SQL Statement!!\n$sqlstr";
# Setup the template to use for the output.
my $template = $self->load_tmpl('test2.tmpl.htm');
my @Officer; # the loop data will be put in here for the html template.
# Now get the table rows and send the list off to the HTML form.....
while (my $row = $sth->fetchrow_hashref)
{
#set up the data in an array to give to the HTML template....
my %line =
(
HTML_ProjectName => $row->{Name},
);
# put this row into the loop by reference
push(@Officer, \%line);
}
return @Officer
}
I get the following error:
Error executing run mode 'Mode_0': can't call method "param" on an undefined
value at Test_code.pm line 284
Which is this line:
my $dbh = $self->param('mydbh');
So what is happening? How can I pass down the db stuff? I tried passing down
$self from the main sub but it didn't work either
Any help would be appreciated.
Cheers
Mick Hawkes
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>