Perl - Besoin de commentaire sur 3 lignes

Perl - Besoin de commentaire sur 3 lignes - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 26-02-2011 à 20:22:08    

Hello,
 
J'ai trouvé un petit bout de code perl qui fonctionne très bien, mais que j'aimerais modifier.
 
Le truc c'est que je suis incapable de le comprendre malgré mes bonnes connaissances Java, c & co. Et vu la syntaxe barbare je m'en sors pas avec google...  :fou:  
 
Y aurait-il une ame charitable pour me commenter ces 3 lignes que je puisse commencer?
 

Code :
  1. #!/usr/bin/perl
  2. #
  3. # URL rewriter for squid to convert HTTP requests to HTTPS.
  4. # Return an HTTP permanent redirect back to the browser.
  5. # http://wiki.squid-cache.org/SquidFaq/SquidRedirectors
  6. #
  7. $| = 1; // J'imagine qu'il lit le 1er arg, mais il le met ou?!
  8. while (<> ) { // WTF, c'est quoi cette condition?!
  9.         s/^http:/301:https:/;           # replace "http" with "https" Je vois bien que c'est un regex, mais elle est appliquée sur quoi?
  10.         print; // Dans mon petit monde à moi, on print qqch, une variable, un literal, pas juste rien :/
  11. }


 
Le script modifie une string apparament recue en argument et replace http par https. Je voudrais en plus modifier le port de destination dans l'URL. P.ex http://test/salut => https://test:1337/salut.
 
A votre bon coeur!

Reply

Marsh Posté le 26-02-2011 à 20:22:08   

Reply

Marsh Posté le 26-02-2011 à 20:49:46    

Ligne 8 --> Tant que différent.
C’est tout ce que je comprend, désolé.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 27-02-2011 à 02:47:00    

Code :
  1. $| = 1; // Force le flush des sorties après chaque opération (la variable spéciale $| permet de manipuler le comportement des buffers)
  2. while (<> ) { // Équivalent à while (<ARGV> ), perl à cette particularité de permettre d'accéder aux arguments de la ligne de commande via un filehandle, quant à while il charge automatiquement la ligne courante dans la variable spéciale $_
  3.         s/^http:/301:https:/; // Par défaut les expressions rationnelles s'appliquent sur la chaîne contenue dans la variable $_
  4.         print; // Même chose en l'absence d'autre argument print affiche le contenu de la variable $_
  5. }


 
 Voilà :hello:


---------------
| < Ceci n'est pas une pipe.
Reply

Marsh Posté le 27-02-2011 à 11:02:20    

Fork Bomb a écrit :

Ligne 8 --> Tant que différent.
C’est tout ce que je comprend, désolé.


raté :o
 
tant qu'il y a de l'entrée, remplacer comme dans la regexp et afficher le résultat.
 
Y'a pas à dire, élever les devs au java, ça les ramollit :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-02-2011 à 11:06:14    

black_lord a écrit :


raté :o
 
tant qu'il y a de l'entrée, remplacer comme dans la regexp et afficher le résultat.


 
Ah merde, c’est la seule ligne qui me disait quelquechose… :/

black_lord a écrit :


Y'a pas à dire, élever les devs au java, ça les ramollit :o


Spoiler :

:kaola:


Spoiler :

Dès que je peux, je cherche une boite ou on me fait pas chier avec ce langage…
Il me sort par les yeux, le truc -_-


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 27-02-2011 à 12:38:10    

black_lord a écrit :


raté :o
 
tant qu'il y a de l'entrée, remplacer comme dans la regexp et afficher le résultat.
 
Y'a pas à dire, élever les devs au java, ça les ramollit :o


 
Alors, le <> n'est pas valide en Java, c'est en VB qu'il veut dire <> et certainement quelques autres languages sinistres :).
 
Et sinon, merci bien High Plains Drifter. C'est exactement ce qu'il me fallait.
 
Vu que j'adore ecrire des trucs compactes et cryptiques, je pense que qu'il va falloir que me mette au PERL, ca cartonne!

Message cité 1 fois
Message édité par fun_key le 27-02-2011 à 12:39:42
Reply

Marsh Posté le 27-02-2011 à 14:28:32    

Au passage j'étais mal réveillé dans mon premier message, while(<> ) permet de charger une par une dans la variable $_ chaque ligne de chaque fichier passé en paramètre au programme.


Message édité par High Plains Drifter le 27-02-2011 à 19:13:11

---------------
| < Ceci n'est pas une pipe.
Reply

Marsh Posté le 27-02-2011 à 15:00:26    

fun_key a écrit :


Alors, le <> n'est pas valide en Java, c'est en VB qu'il veut dire <> et certainement quelques autres languages sinistres :).
!


 [:orly2]  


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed