Retourner aux forums || Retourner au forum Programmation.perl

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

Posté par pierthi () le 09 août 2005
0
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 ?

> Lire le message (6 commentaires, moyenne: 1,3).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

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

Fonctionne bien sur Fedora Core 4

Posté par Bruno Ethvignot (page perso, ) le 09/08/2005 à 19:47. (lien). Évalué à 1.

Perl v5.8.6 / Fedora Core 4

Tout est OK. Tu n'as pas un caractère invisible qui traine ?

Commence toujours tes programmes par :
use strict;
use diagnostics;

  • [^]Re: Fonctionne bien sur Mandriva

    Posté par Sylvain (Jabber id, page perso, ) le 09/08/2005 à 20:57. (lien). Évalué à 0.

    [tsubasa@m4st0r ~]$ perl test.pl
    [tsubasa@m4st0r ~]$ perl --version

    This is perl, v5.8.6 built for i386-linux
    (with 1 registered patch, see perl -V for more detail)

    • [^]Re: Fonctionne bien sur Mandriva

      Posté par Christophe Chailloleau-Leclerc (Jabber id, page perso, ) le 09/08/2005 à 21:38. (lien). Évalué à 1.

      Euh, moi, je serais lui, vu comme tu lui parles, j'aurais déjà formaté ton disque ;-)

      • [^]Re: Fonctionne bien sur Mandriva

        Posté par Christophe Chailloleau-Leclerc (Jabber id, page perso, ) le 09/08/2005 à 21:40. (lien). Évalué à 1.

        Oups ! À rattacher au message d'origine, pas à la réponse, évidemment !

        • [^]Re: Fonctionne bien sur Mandriva

          Posté par pierthi () le 10/08/2005 à 14:18. (lien). Évalué à 2.

          Mouais, je viens aussi de tester sous la Mandriva, ça marche aussi. Pour Mac OS X, je pencherais pour la version qui date un peu. Pour Windows, j'ai fait un bug report à ActiveState. Avec un peu de chance ça sera corrigé d'ici quelques années (ou pas d'ailleurs ...).

google, le CPAN et moi meme sommes tes amis :)

Posté par Moun's (page perso, ) le 17/08/2005 à 22:31. (lien). Évalué à 2.

http://rt.cpan.org/NoAuth/Bug.html?id=5607(...)

oué mon bug report est pas des plus clair, mais bon le probleme est simple :

Switch est un filtre perl pour le code et recherche des regexp ... sauf que si les / ne sont pas correctement balancé, ben le programme ne marche pas.

Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.perl