Das Hash %v bekommt seine Werte von der Methode Vars des Objektes $cgi aus der Klasse CGI.
Ich versuche mal eine analogie mit param herzustellen:
use CGI;
my $cgi = CGI->new();
my %v = ();
$v{$_} = param($_) for $cgi->keywords();
so arbeitet in etwa (natürlich nur veranschaulicht) die Vars Methode.
Hier der Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
sub speichern
{
# Objekt erstellen falls noch nicht geschehen
my $cgi = CGI->new();
# Alle Parameter ins Hash %v
my %v = $cgi->Vars();
my $dbh;
my $sth;
my $ref;
my ($IDA) = @_;
print $IDA; # hier kommt noch der Richtige wert an.
$dbh = WebDB::connect();
$dbh->do ("REPLACE INTO shop1_artikel_1 (Reihenfolge, ArtNr, ArtGruppe, ArtNGruppe, ArtTitel, ArtText, ArtPreis, ArtMWSt, ArtRabatt, ArtEigenschaften, ArtBildklein, ArtBildgross)
VALUES ('$v{name}','$v{name}','$v{name}','$v{name}','$v{name}','$v{name}','$v{name}','$v{name}','$v{name}','$v{name}','$v{name}','$v{name}')") or die DBI::errstr;
# use DBI muss vorhanden sein damit errstr ausgegenben werden kann oder muss durch das
# Package WebDB implementiert sein.
$sth = $dbh->prepare ( "SELECT * FROM shop1_artikel_1 WHERE ArtID = $IDA ");
$sth->execute ();
$ref = $sth->fetchrow_hashref ();
$sth->finish ();
$dbh->disconnect ();
}
#--------------------------------------------------------------------------
Gruß Alex\n\n
<!--EDIT|format_c|1064053492-->