traduction php -> pl

traduction php -> pl - Perl - Programmation

Marsh Posté le 22-03-2007 à 11:19:20    

Bonjour à tous,
Voilà le code que j'ai fait et que j'aimerais pouvoir réutiliser pour un site en perl. Est-ce que quelqu'un pourrait me le "traduire", ou au moins avoir une transposition des fonctions?
Merci d'avance.

Code :
  1. function barometre($pression)
  2. {
  3. if ($pression <= 980)
  4.  $temps = "Tempête";
  5. else if (($pression > 980) && ($pression <= 1006))
  6.  $temps = "Pluie/Vent";
  7. else if (($pression > 1006) && ($pression <= 1019))
  8.  $temps = "Variable";
  9. else if (($pression > 1019) && ($pression <= 1040))
  10.  $temps = "Beau temps";
  11. else if ($pression > 1040)
  12.  $temps = "Très sec";
  13. else
  14.  $temps = "";
  15. return $temps;
  16. }
  17. function orientation($angle)
  18. {
  19. if (($angle >= 337.5) || ($angle < 22.5))
  20.  $direction = "N";
  21. else if (($angle >= 22.5) && ($angle < 67.5))
  22.  $direction = "NE";
  23. else if (($angle >= 67.5) && ($angle < 112.5))
  24.  $direction = "E";
  25. else if (($angle >= 112.5) && ($angle < 157.5))
  26.  $direction = "SE";
  27. else if (($angle >= 157.5) && ($angle < 202.5))
  28.  $direction = "S";
  29. else if (($angle >= 202.5) && ($angle < 247.5))
  30.  $direction = "SW";
  31. else if (($angle >= 247.5) && ($angle < 292.5))
  32.  $direction = "W";
  33. else if (($angle >= 292.5) && ($angle < 337.5))
  34.  $direction = "NW";
  35. else
  36.  $direction = "";
  37. return $direction;
  38. }
  39. $paquet_wddx = join ('', file($url));
  40. $resultats_wddx = wddx_deserialize($paquet_wddx);
  41. if(is_array($resultats_wddx)){
  42. list($numero_ligne,$val) = each($resultats_wddx);
  43. $vitesse = $val[vitessevent]*3.6/100;
  44. $temperature = $val[temperature]/100;
  45. $pression = round($val[pressionSL]/100,1);
  46. $temps = barometre($pression);
  47. $dir_val = round($val[dirvent]/100);
  48. $direction = orientation($dir_val);
  49. $windchill = 13.112 + 0.6215 * $temperature -11.37 * pow($vitesse,0.16) + 0.3965 * $temperature * pow($vitesse,0.16);
  50. $meteo_live = "<center><u>Station sommet</u></center>Dernier relev&eacute;: " . substr($val[dateheure],8,2) . "h" . substr($val[dateheure],10,2) . " <br>Temp&eacute;rature: " . round($temperature,1) . "°C <br>Temp. ressentie: " . round($windchill,1) . "°C <br>Vent: " . round($vitesse) . "km/h (" . $direction . " )<br>" . $pression . "hPa - " . $temps;
  51. }else{
  52.     $meteo_live = "Aucune données météo !";
  53. }

Reply

Marsh Posté le 22-03-2007 à 11:19:20   

Reply

Marsh Posté le 22-03-2007 à 11:43:16    

y'a rien de bien violent dans la traduction:
tu changes les functions en sub, la façon de récupérer les paramètres, tu oublies pas de déclarer tes variables avec un my.
Le seul problème, c'est qu'il te faut recoder la fonction wddx_deserialize ( ou trouver un module sur la cpan qui fait pareil).
 
Sur quoi bloques-tu exactement?

Reply

Marsh Posté le 22-03-2007 à 12:35:02    

ben moi et perl, à part qq scripts à l'école (qui ont en plus rien à voir avec une page web), c'est pas mon truc du tout...
je suis bien d'accord la syntaxe ressemble, mais je code jamais en perl, alors même un if j'étais pas sûr que ce soit pareil...


Message édité par bigben74 le 22-03-2007 à 12:37:25
Reply

Marsh Posté le 22-03-2007 à 18:29:22    

juste une astuce pour remplacer la fonction round() qui n'existe pas en perl

 

sub round { return int(shift() + 0.5); }


Message édité par djtoz le 22-03-2007 à 18:31:03
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed