hallo Siechfred,
Привет Alain.
»»
lernst Du russisch :)
Sag mal, ist das deine Lebensaufgabe, antiquierte Scripte zum fehlerfreien Laufen zu bringen? ;-)
naja sagen wir mal so,ich interessiere mich eben noch für alte
(gibt ja keine vernüftigen neue->oder aber ich habe tomaten auf den augen)
scripts und halt eben perl :)
Wie Vinzenz schrieb, auf die zwei nebeneinander liegenden Werte, $a ist dabei der aktuelle, $b der folgende Wert (siehe Perldoc: sort).
ja hab mir mal angesehen,brachte aber nicht viel jedenfalls nicht mit {$a <=> $b}
Dort wird ein Hash %shipping nach seinen Schlüsseln aufsteigend sortiert und das Ergebnis in den Array @prices geschrieben:
aha
@prices = sort number keys %shipping;
number ist dabei die Referenz auf eine Sortierfunktion, man könnte auch gleich schreiben:
@prices = sort {$a <=> $b} keys %shipping;
hmmm,das dacht ich mir,aber die sub kann doch nicht nur mit "number" aufgerufen werden?
Und da ist der Übeltäter, nämlich dieser ominöse Hash (siehe auch perldata):
%shipping = ("",'0.00','1','5.00','3','10.00','5','15.00','7','20.00','10','30.00');
nach perl doc hab ichs mal so
my %shipping = ('0' => '0.00','1' => '5.00','3' => '10.00','5' => '15.00','7' => '20.00','10' => '30.00');
versucht,aber kein grosser erfolg gehabt,jedoch jetzt gehts auch ohne den <=> sub was mir nun auch keinen error mehr verursacht-keine ahnung warum das jetzt so geht.
habe den unteren teil noch so
if (($itemquant)and($itemquant >= 1)) {
local($low,@prices,$price);
my $price = '5'||'';
@prices = sort keys %shipping;
$low = $prices[0];
foreach $price (@prices) {
if (($price > $low) && ($price <= $totalquant)) {$low = $price};
}
$shipamt = $shipping{$low};
$totalprice += $shipamt............
abgeändert.Komisch so geht alles ohne fehler im errorlog.
Du siehst, alles Strings, ergo muss bei Verwendung von '<=>' ein Fehler kommen. Warum der Shop trotzdem funktioniert, musst du jetzt aber selber recherchieren :)
ja das hab ich ,aber mit hashes hab ich da so meine probleme.
Gut Nacht vom müden
Alain