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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| #!/usr/bin/perl -w
print "Content-type: text/plain\n\n";
# --------------------------------------------------
sub main::urlEncode {
my ($string) = @_;
$string =~ s/(\W)/"%" . unpack("H2", $1)/ge;
return $string;
}
sub main::urlDecode {
my ($string) = @_;
$string =~ tr/+/ /;
$string =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
return $string;
}
sub main::getData {
my $engine = shift;
my $q = shift;
my $lang = shift;
$q = urlEncode ($q);
my $content = "\"$engine. ceci est un test en $lang => $q\"\n";
print "Thread : $content";
return $content;
}
# --------------------------------------------------
use CGI qw/:standard -debug/;
use threads;
# --------------------------------------------------
$input = $ENV{QUERY_STRING};
@liste= split(/&/,$input);
foreach (@liste)
{
($name,$value)= split(/=/, $_);
if ($name eq 'q')
{
$q = $value;
}
if ($name eq 'lang')
{
$lang = $value;
}
}
unless ($q)
{
$q = "test";
}
unless ($lang)
{
$lang = "fr";
}
# --------------------------------------------------
$thr1 = threads->new(\&getData, "1", $q, $lang) or die "\"erreur\"\n";;
$thr2 = threads->new(\&getData, "2", $q, $lang) or die "\"erreur\"\n";
$thr3 = threads->new(\&getData, "3", $q, $lang) or die "\"erreur\"\n";
$data1 = $thr1->join;
$data2 = $thr2->join;
#$data3 = $thr3->join;
print "Data 1 : ";
print $data1;
print "Data 2 : ";
print $data2;
print "Data 3 : ";
print $data3;
# --------------------------------------------------
print "\nFin !"; |
Partager