Forum Programmation.perl Switch en perl 5.8 qui veut pas compiler

Posté par  .
Étiquettes : aucune
0
9
août
2005
Quelqu'un pourrait me dire pourquoi ce gros naze de perl 5.8 (testé avec ActivePerl 5.8.7 build813 sous Windows 2000 et perl 5.8.1 sous Mac OS X), refuse de compiler ce pauvre script :


use Switch;

my $maxreq = 2147483646;

&check_updates(1);

sub check_limit
{
my $sz = int($maxreq / 1024);

return "(< $sz Kb)" if $sz < 1024;

# Seems to trigger the error
$sz = int($maxreq / (1024 * 10.24)) / 100;

return "(< $sz Mb)" if $sz < 1024;
}

sub check_updates
{
my $job = shift;
my $ret = "";
my $ref = [1,2,3,4,5,6];

switch ($job) {
case 1 { $ret .= "" . $ref->[2] . ""; }
}

return $ret;
}


Maintenant le truc marrant :
Changer la ligne :
$sz = int($maxreq / (1024 * 10.24)) / 100;
En :
$sz = int($maxreq / 1024 / 10.24) / 100;

Pouf, ça marche.

WTF ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.