navigation
Home
admin
|
Perl
October 18th, 2016
|
Voir également h?doc=Modules_Perl
| Table des matières |  |
Encodage / décodage
Installation sur Debian
"Cannot unzip, no unzip program available"
Comparaison de dates
Fichiers codés en UTF-8
Tableaux passés en paramètre
| Encodage / décodage |  |
Vérifier l'encodage
use Encode::Detect::Detector;
$encoding_name = Encode::Detect::Detector::detect($string);
print " string : ".$string."\ n";
if (defined $encoding_name)
{
print "encodage : ".$encoding_name."\n";
} |
Décodage (passage en UTF-8 si c'est le codage par défaut de perl)
$string = decode($encoding_name, $string); |
Afficher le codage d'un caractère (ici le 5ème)
printf("%X\n", ord(substr($enomusage, 4, 1 ) ) ) ; |
On peut ensuite utiliser ce code dans des expressions régulières :
$enomusage =~ s/\x{2019}/ /g; |
Note : une table des caractères : http://www.20doigts.fr/utf-8-extended-table.html
| Installation sur Debian |  |
apt-get install libmodule-install-perl
cpan
install
install < nom du module>
|
| "Cannot unzip, no unzip program available" |  |
>cpan
>o conf unzip /usr/bin/unzip
>o conf commit
|
http://sylvain.lhullier.org/publications/intro_perl/
1/ $toto : scalaire
2/ @toto : tableau
- indice du dernier élément d'un tableau @t : variable $#t (les indices commencent à 0)
- scalar(@t) = nombre d'élément du tableau my $x = @t
- accès à un élément particulier = §t[1]
3/ %toto : table de hachage
- accès à un élément particulier = $toto{1}
- keys(%toto) : obtenir une liste des clefs
- values(%toto) : obtenir une liste des valeurs
- suppression : delete
4/ expressions régulières
- match : if( $v =~ m/toto/ )
si $v contient toto
- remplace : $v =~ s/toto/titi/;
remplace la première occurrence de toto dans la variable $v par titi
5/ pointeur :
- my $refv = $v;
- récupérer la valeur : $$refv
- " " => interprétation du contenu
' ' => pas d'interprétation du contenu
| Comparaison de dates |  |
#!/usr/bin/perl
use strict;use warnings;
use Date::Manip;
#use Date::Calc qw(Delta_Days);
use Date::Calc qw(Delta_DHMS);
my $date1 = "Oct 3 9:50:32 2011";
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$mon = $mon+1;
$year = 1900 + $year;
my $date2 = "$mon $mday $hour:$min:$sec $year";
print "date2 : $date2\n";
my $d1 = ParseDate($date1);
my $d2 = ParseDate($date2);
my @d1 = UnixDate($d1,"%Y","%m","%d","%H","%M","%S");
print "@d1\n";
my @d2 = UnixDate($d2,"%Y","%m","%d","%H","%M","%S");
print "@d2\n";
my @diff = Delta_DHMS(@d1,@d2);
print "Diff : $diff[0] jours, $diff[1]:$diff[2]:$diff[3]\n";
|
| Fichiers codés en UTF-8 |  |
Lecture :
open FH, "<:utf8", "fichier"; |
Ecriture :
open FH, ">:utf8", "fichier"; |
Source : http://perl.enstimac.fr/DocFr/perluniintro.html
| Tableaux passés en paramètre |  |
Pour passer un tableau en paramètre à une fonction, on peut passer une référence à ce tableau. Exemple :
my @liste = ();
$liste[0]="toto";
print "liste 0 : $liste[0]\n";
ma_fonction(\@liste);
foreach my $value ( @liste ) {
print "test : $value\n";
}
sub ma_fonction
{
($refliste) = @_;
print "ma_fonction liste 0 : @{$refliste}[0]\n";
@{$refliste}[0]="tutu";
@{$refliste}[1]="titi";
} |
Ce qui donne une fois exécuté :
liste 0 : toto
ma_fonction liste 0 : toto
test : tutu
test : titi |
|
|
Contact
|
|---|
Pour m'envoyer un mail, Pour me laisser un commentaire :richard.brunooo chez gmail.com |  |
|
|