Outils pour utilisateurs

Outils du site


all:bibles:langages:perl

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
all:bibles:langages:perl [2026/03/09 15:36] – [Compter un caractère sur chaque ligne d'un fichier] omeylhocall:bibles:langages:perl [2026/04/02 15:29] (Version actuelle) – [Installation manuelle] omeylhoc
Ligne 780: Ligne 780:
     printf "\n";     printf "\n";
 } while ($pw eq ""); } while ($pw eq "");
 +</code>
 +
 +=== Mise en mémoire tampon ===
 +
 +  * Désactiver la mise en mémoire tampon au niveau variable globale
 +
 +<code perl>
 +$| = 1;
 +</code>
 +
 +  * Désactiver la mise en mémoire tampon localement
 +
 +<code perl>
 +select((select(STDOUT), $|=1)[0]);
 +print "chaine sans retour à la ligne";
 +</code>
 +
 +  * Alternative en faisant un flush après chaque print sans retour à la ligne
 +
 +<code perl>
 +print "chaine sans retour à la ligne";
 +STDOUT->flush();
 </code> </code>
  
Ligne 792: Ligne 814:
 print $OUT "…\n";                          # Ecriture simple dans le fichier print $OUT "…\n";                          # Ecriture simple dans le fichier
 close(my $OUT);                            # Ferme le fichier. close(my $OUT);                            # Ferme le fichier.
-while (defined($ligne=<$IN>)) {          # Pour être sûr, au cas où une ligne contiendrait undef+while (defined(my $ligne=<$IN>)) {       # Pour être sûr, au cas où une ligne contiendrait undef
 foreach my $ligne (reverse(<$IN>)) { }     # Pour parcourir le fichier à l’envers foreach my $ligne (reverse(<$IN>)) { }     # Pour parcourir le fichier à l’envers
 </code> </code>
Ligne 800: Ligne 822:
 <code perl> <code perl>
 open(my $IN,"< $fichier") || die "Impossible d'ouvrir le fichier $fichier : $!"; open(my $IN,"< $fichier") || die "Impossible d'ouvrir le fichier $fichier : $!";
-while (defined($ligne=<$IN>)) {   +while (defined(my $ligne=<$IN>)) {   
     chomp $ligne;     chomp $ligne;
 } }
Ligne 1099: Ligne 1121:
 <code bash> <code bash>
 perl -lne 'my $count=tr/;/;/; print "ligne $. : $count";' fichier perl -lne 'my $count=tr/;/;/; print "ligne $. : $count";' fichier
-</code> 
- 
-==== Forcer l'écriture sur STDOUT avant le \n ==== 
- 
-=== Localement === 
- 
-<code perl> 
-select((select(STDOUT), $|=1)[0]); 
-</code> 
- 
-=== Variable globale === 
- 
-<code perl> 
-$| = 1; 
 </code> </code>
  
Ligne 1185: Ligne 1193:
 make test make test
 make install make install
 +</code>
 +
 +==== Text::CSV ====
 +
 +Lecture de fichier csv
 +
 +<code perl>
 +use strict;
 +use warnings;
 +use Text::CSV;
 +
 +my $csv = Text::CSV->new({ 
 +    sep_char => ',',
 +    binary => 1,
 +    auto_diag => 1,
 +});
 +
 +open my $fh, '<:encoding(utf8)', 'fichier.csv' 
 +    or die "Impossible d'ouvrir le fichier: $!";
 +
 +# Lire la ligne d'en-tête
 +my $headers = $csv->getline($fh);
 +$csv->column_names($headers);
 +
 +# Lire les données ligne par ligne
 +while (my $row = $csv->getline_hr($fh)) {
 +    print "Nom: $row->{nom}, Age: $row->{age}\n";
 +    # Accès aux colonnes par leur nom d'en-tête
 +}
 +
 +close $fh;
 </code> </code>
  
all/bibles/langages/perl.1773067005.txt.gz · Dernière modification : de omeylhoc