Outils pour utilisateurs

Outils du site


programmation_perl

Ceci est une ancienne révision du document !


Ftp SSL

Installer d'abord le package 'ssleay':

# apt-get install libnet-ssleay-perl

Et puis enfin: # cpan -i IO::Socket::SSL # cpan -i Net::FTPSSL

Parce que 'cpan' ne peut pas installer le module 'ssleay'.

Tips

DateTime

Des dates a comparer… mais localtime et time c'est vraiment trop pourri…

Il faut utiliser le formidable module DateTime : http://search.cpan.org/~drolsky/DateTime-0.53/lib/DateTime.pm

module

On peut l'installer comme cela:

# aptitude install libdatetime-perl

basic

#!/usr/bin/perl -w

use strict;
use warnings;

use DateTime;

{
  my $dt_now = DateTime->now();
  my $dt_loin = DateTime->new( year => 2009, month => 12, day => 1 );
  my $dt_diff = $dt_now-$dt_loin;

  print "jours: ", $dt_diff->delta_days ;
}

Où:

  • $dt_now , c'est la DateTime (dt) de maintenant
  • $dt_loin , c'est une date composé, loin dans le temps.

Attention: faire un calcul (soustraction pour exemple), c'est créé un objet “duréé” (duration) !
Donc:

  • $dt_now-$dt_loin donne une “duration”.
  • $dt_diff est la “duration” de l'opération sur les 2 dates.

Pour avoir le nombre de jours de “duration” (toujours par exemple), il faut appeler la méthode delta_days.

Et voila le résulta:

23

Oui, on est la veille de Noël !

Tout est objet...

On peut simplifier l'ecriture (mais pas la lisibilité) :

  my $dt_now = DateTime->now();
  my $dt_loin = DateTime->new( year => 2009, month => 12, day => 1 );
  
  print "jours: ", ( $dt_now-$dt_loin )->delta_days ;

On peut aussi créer 2 dates avec un écart de 100 jours, comme cela:

my $dt_end = DateTime->now();
my $dt_start = $dt_end - DateTime::Duration->new( days => 100 );
print ( $dt_end - $dt_start )->delta_days ;

en bref

do

Lien: http://www.tinybox.net/astuces/programmation/perl/love-love-my-do

On peut faire:

my $var = do { 34 };

Mais aussi:

my $var = do { 
  print "bonjour";
  if ( defined($ARGV[0]) ) { $ARGV[0]; }
  else { "rien de rien"; }
};
programmation_perl.1263392887.txt.gz · Dernière modification : 2010/01/13 14:28 de thierry