Thread Warum hängt sich Perl auf? (20 answers)
Opened by bony at 2004-05-09 17:58

bony
 2004-05-09 23:37
#2369 #2369
User since
2004-04-30
18 Artikel
BenutzerIn
[Homepage] [default_avatar]
Sorry @ [E|B]. Das Problem scheint doch was mit der Funktion calculateShipping() zu tun zu haben. Wenn ich die Funktion in beiden Fällen umgehe, läuft das Skript. Die Funktion sieht folgendermaßen aus:

Code: (dl )
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
sub calculateShipping {
   my ( $picOptions ) = @_;

   my $shippingCosts = undef;

   if ( $picOptions->[ 9 ] || $picOptions->[ 8 ] || $picOptions->[ 7 ] || $picOptions->[ 6 ] ) {
       $shippingCosts = $shipRolle;
   }

   elsif ( $picOptions->[ 5 ] ) {
       if ( $picOptions->[ 5 ] > 64 ) { $shippingCosts = $shipRolle; }
       elsif ( ( $picOptions->[ 5 ] > 32 ) && ( $picOptions->[ 5 ] < 65 ) ) { $shippingCosts = $shipMaxi; }
       else { $shippingCosts = $shipKompakt; }
   }

   elsif ( $picOptions->[ 4 ] || $picOptions->[ 12 ] ) {

       my $pictureNr =  $picOptions->[ 4 ] + $picOptions->[ 12 ];
       if ( $pictureNr > 160 ) { $shippingCosts = $shipRolle; }
       elsif ( ( $pictureNr > 87 ) && ( $pictureNr < 161 ) ) { $shippingCosts = $shipMaxi; }
       else { $shippingCosts = $shipKompakt; }
   }

   elsif ( $picOptions->[ 3 ] || $picOptions->[ 2 ] || $picOptions->[ 1 ] || $picOptions->[ 10 ] || $picOptions->[ 10 ] ) {

       my $pictureNr =  $picOptions->[ 3 ] + $picOptions->[ 2 ] + $picOptions->[ 1 ] + $picOptions->[ 10 ] + $picOptions->[ 11 ];

       if ( $pictureNr > 160 ) { $shippingCosts = $shipRolle; }
       elsif ( ( $pictureNr > 149 ) && ( $pictureNr < 161 ) ) { $shippingCosts = $shipMaxi; }
       elsif ( ( $pictureNr > 13 ) && ( $pictureNr < 150 ) ) { $shippingCosts = $shipGross; }
       elsif ( ( $pictureNr > 4 ) && ( $pictureNr < 14 ) ) { $shippingCosts = $shipKompakt; }
       else { $shippingCosts = $shipStd; }

   }

   else { $shippingCosts = $shipKompakt; }

   # 2 Nachkommastellen erzeugen, falls nur eine da
   if ( $shippingCosts =~ /\.\d$/ ) {
       $shippingCosts = $shippingCosts."0";
   }
   if ( $shippingCosts =~ /^\d$/ ) {
       $shippingCosts = $shippingCosts.".00";
   }

   return ( $shippingCosts );

} # calculateShipping()


Nur, was gefällt Perl daran nicht, so dass es ohne Fehlermeldung hängen bleibt?

View full thread Warum hängt sich Perl auf?