Communication de processus perl

Fermé
nanau - 15 nov. 2004 à 17:18
 Utilisateur anonyme - 15 nov. 2004 à 20:49
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

Utilisateur anonyme
15 nov. 2004 à 20:49
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