私はこの $!=0 を理解しようとしています。私のスーパーバイザーは、このリンクでタラをくれました: http://codepaste.ru/1374/ しかし、彼女はタラのこの部分を変更しました:
while($client || $target) {
my $rin = "";
vec($rin, fileno($client), 1) = 1 if $client;
vec($rin, fileno($target), 1) = 1 if $target;
my($rout, $eout);
select($rout = $rin, undef, $eout = $rin, 120);
if (!$rout && !$eout) { return; }
my $cbuffer = "";
my $tbuffer = "";
if ($client && (vec($eout, fileno($client), 1) || vec($rout, fileno($client), 1))) {
my $result = sysread($client, $tbuffer, 1024);
if (!defined($result) || !$result) { return; }
}
これに:
while($client || $target) {
my $rin = "";
vec($rin,fileno($client),1) = 1 if $client;
vec($rin,fileno($target),1) = 1 if $target;
my($rout,$eout);
select($rout = $rin,undef,$eout = $rin,120);
break_pipe() if !$rout && !$eout;
my($cbuf,$tbuf);
if($client && (vec($eout,fileno($client),1) || vec($rout,fileno($client),1))){
$! = 0;
my $result = sysread($client,$tbuf,$packet_length);
検索しましたが、perl でこの構文 ($!=0) のようなものは見つかりませんでした