Communication de processus perl

nanau -  
 philtrain -
Salut,
Je voudrais avoir un échange de chaîne de caractère entre un programme perl et un processus extérieur,
Le processus externe transmet des flux à mon programme perl, le programme perl effectue un traitement et renvoi la réponse (chaîne de caractère) au processus externe.
Cet échange se fait en boucle.

Le problème : avec le programme PERL ci dessous, je n’obtiens la réponse du programme perl qu’à la fin de son exécution (c’est à dire quand le stdout se libère). Je veux avoir les réponses ligne par ligne au fur à mesure c’est à dire que le programme externe peut accéder au STDOUT avant la fin du programme perl …

#!/bin/perl

my $i = 0;

while (!($var eq 'fin')) {
$var = <STDIN>;
chomp($var);
print STDOUT "La ligne saisie est : $var \n" ;

$i++;
}
close(STDOUT);

1 réponse

  1. philtrain
     
    Bonjour,

    la variable $var n'a pas été initialisée.

    Voici le code corrigé:

    #!/usr/bin/perl -w
    use strict;

    my $i = 0;
    my $var = "";

    while (! ($var eq "fin") )
    {
    $var = <STDIN>;
    chomp($var);
    print STDOUT "La ligne saisie est : $var\n";
    $i++
    }
    close (STDOUT);

    a+
    0