[Perl] Numérotation

Résolu
Bonjour,

Je commence à découvrir Perl et bute sur un problème.
Une chose toute simple, je recherche dans un document des occurences (lien http) et les stockes dans un document avec le n° de la ligne où elles ont été trouvées.
Mais j'aimerais aussi qu'avant d'insérer le n° de la ligne correspondante, insérer le nombre d'occurences trouvées.
  1 - ligne 5 - www…
  2 - ligne 22 - www…
  3 - ligne 48 - www…
  etc.
Comment faire ?

--
 
Configuration: Mac OS X
Safari 419.3

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Oui, et le numéro de ligne comme tu l'as remarqué est donné par la variable spéciale $. ou $INPUT_LINE_NUMBER ou $NR si tu utilses use English
    #!/usr/bin/perl
    use strict;use warnings;
    use English;
    
    my $l=1;
    while(<DATA>){
      print $l++," - ligne $INPUT_LINE_NUMBER\t- $1\n" if /(http.*)/;
    }
    __END__
    aaaaaaa
    http://www.bbbbbb.fr
    aa
    cccc
    aa
    http://www.ccc.fr
    sdjf
    sdj
    jkjk
    https://www.commentcamarche.net/
    
    1. Contributeur
      Merci.
      Il me suffit donc d'initialiser une variable ($1) et de l'incrémenter de 1 ($1+1) à chaque passage.
      Merci.

      [edit] $++ me parle plus…
      1. Modérateur
        ou encore
        lami20j@deb:~$ cat ccm.pl
        #!/usr/bin/perl
        use strict;use warnings;
        
        my $l=1;
        while(<DATA>){
          print $l++," - ligne $.\t- $1\n" if /(http.*)/;
        }
        __END__
        aaaaaaa
        http://www.bbbbbb.fr
        aa
        cccc
        aa
        http://www.ccc.fr
        sdjf
        sdj
        jkjk
        https://www.commentcamarche.net/
        
        1. Modérateur
          Salut,

          voici un p'tit exemple
          lami20j@deb:~$ cat ccm.pl
          #!/usr/bin/perl
          use strict;use warnings;
          
          my $l=0;
          while(<DATA>){
            print "${\($l=$l+1)} - ligne $.\t- $1\n" if /(http.*)/;
          }
          __END__
          aaaaaaa
          http://www.bbbbbb.fr
          aa
          cccc
          aa
          http://www.ccc.fr
          sdjf
          sdj
          jkjk
          https://www.commentcamarche.net/
          lami20j@deb:~$ perl ccm.pl
          1 - ligne 2     - http://www.bbbbbb.fr
          2 - ligne 6     - http://www.ccc.fr
          3 - ligne 10    - https://www.commentcamarche.net/
          lami20j@deb:~$