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 $nbdays = $dt_loin->delta_days( $dt_now )->delta_days;
print "jours: ", $nbdays, "\n"; }
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”.
Pour avoir le nombre de jours de “duration” (toujours par exemple), il faut appeler la méthode delta_days
.
mais il faut l'appeler correctement , chose loin d'être evidente ! |
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"; } };