J'ai besoin d'aide pour essayer de formater les dates en Perl. J'ai un script Perl de travail, avec une expression régulière, qui fonctionne très bien si j'utiliser des chaînes de date pré-programmée comme ceci:perl aide trouver le format de date correct
my $mon = 'Aug';
my $day = '05';
my $year = '2010';
Ces vars sont utilisés dans une expression régulière comme ceci:
if ($line =~ m/(.* $mon $day) \d{2}:\d{2}:\d{2} $year: ([^:]+):backup:/)
Maintenant, j'ai besoin d'automatiser cette partie du code et d'utiliser systématiquement la date du jour. J'ai regardé dans perl localtime et j'ai essayé d'utiliser unix date et les jeter dans les variables. Je dois avoir les jours de la semaine, un seul chiffre, être rembourré avec '0'. Comme aujourd'hui, 'Aug' '05' '2010' car le fichier d'entrée que j'utilise pour la regex a des dates comme celle-ci.
Mon 2ème essai avec le unix et la mise en forme est le nombre de retour, mais je dois les avoir être des chaînes:
my $mon2=`date '+%b'`;
my $day2=`date '+%d'`;
my $year2=`date '+%Y'`;
Mon code de test pour jouer avec les formats de date:
#!/usr/local/bin/perl -w
use strict;
my $mon = 'Aug';
my $day = '05';
my $year = '2010';
my $mon2=`date '+%b'`;
my $day2=`date '+%d'`;
my $year2=`date '+%Y'`;
print "$mon";
print "$day";
print "$year";
print "$mon2";
print "$day2";
print "$year2";
Ma sortie :
Aug052010Aug
05
2010
Et si vous ne voulez pas installer DateTime pour une raison quelconque (même si elle est génial) vous pouvez utiliser la fonction 'strftime' dans le module' POSIX' standard. – friedo
Merci les gars! Informations très utiles. – jdamae