Andreas: Gästebuchscript in Perl/mit MySQL - Adminfunktion

Beitrag lesen

Mittels
print '<form action="http://localhost/cgi-bin/gaestebuch.pl" method="POST">';
print '<input type="hidden" name="action" value="delete" />';
....
<input type="checkbox" name="$hash_ref->{'id'}" value="$hash_ref->{'id'}" />

übergebe ich den Wert der checkbox an ein Unterprogramm

elsif ($query->param('action') eq 'delete') {
  delete();
}

sub delete {
  print $query->header;
  my $sql = "DELETE FROM eintraege WHERE id=$query->param($hash_ref->{'id'}) LIMIT 1";
  my $sth = $dbh->prepare($sql) || die "$dbh->errstr";
  print $query->start_html(-title=>'Adminfunktionen',
                           -author=>'jl@visualgrafyx.com',
                           -style=>{'src'=>'../stylesheets/style.css'});
  print "<p>Eintrag erfolgreich gelöscht</p>\n";
  print $query->end_html;
}

Es erscheint folgender Fehler:

Software error:

Not enough arguments for delete at D:\Server\Apache2\cgi-bin\gaestebuch.pl line 72, near "delete()"
Global symbol "$hash_ref" requires explicit package name at D:\Server\Apache2\cgi-bin\gaestebuch.pl line 311.
Execution of D:\Server\Apache2\cgi-bin\gaestebuch.pl aborted due to compilation errors.

Wie müsste es richtig heissen? Ich komme mit diesen Checkboxen nicht so ganz klar.