in reply to Deleting submitted values from and HTML form

Are you saying that after this is executed:
#And the code that should delete all the invalid input: my $i; foreach $i (@delete) { $query->delete($i); }
That your $query object still have all of those params that you tried to delete? Test it and see.
$query->delete_all(@delete); foreach my $deleted (@delete) { warn "Deleted ($deleted) NOT deleted" if( $query->param($deleted ); }
If that executes fine with no warning about things not being deleted, then check where you are calling self_url().