1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
use strict;
use warnings;
use File::Slurp;
use IPC::Open2;
#* Paramètres. *
my $nomsource = "source1.php";
$|++;
sub filtrecommande {
my ($commande, $entree) = @_;
#* Ouverture des descripteurs de fichiers. *
my ($df_sortie, $df_entree);
my $pid = open2($df_sortie, $df_entree, $commande);
#* Envoie des données en entrée du filtre. *
print $df_entree $entree;
close $df_entree;
print STDERR "Balise 1.\n";
waitpid($pid, 0);
print STDERR "Balise 2.\n";
#* Récupération des données en sortie de filtre. *
my $sortie;
while ( my $ligne = <$df_sortie> ) {
$sortie .= $ligne;
}
close $df_sortie;
#* Terminaison. *
return $sortie;
}
my $source = read_file($nomsource, binmode => ':utf8');
my $produit = filtrecommande('php', $source);
print STDERR "Produit : <<$produit>>\n"; |
Partager