App-rs
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
$h->{l} = "";
} else {
$h->{l} .= substr($b, $i), $i = length($b);
}
} else {
if ($h->{rl} ne "eof" and $h->{rl} <= length($b) - $i) {
$h->{c} .= substr($b, $i, $h->{rl}), $i += $h->{rl};
if ($h->{st} eq "reading-chunk-data") { $h->{rl} = "line", $h->{st} = "reading-crlf" }
else { return $i }
} else {
$h->{c} .= substr($b, $i), $h->{rl} -= length($b) - $i, $i = length($b);
}
}
}
undef;
}
sub http_unparse {
my $h = shift;
my $b;
my $v = "HTTP/$h->{major}.$h->{minor}";
if ($h->{type} eq "request") { $b = join " ", $h->{method}, $h->{"request-uri"}, $v }
else { $b = join " ", $v, $h->{"status-code"}, $h->{"reason-phrase"} }
$b .= "\r\n";
$h->{hv}{"content-length"} = length($h->{c}) if exists $h->{hv}{"content-length"};
my $i = {};
for (@{$h->{hf}}) {
$b .= "$_: ";
my $k = lc $_;
if (ref $h->{hv}{$k} eq "ARRAY") { $b .= $h->{hv}{$k}[$i->{$k}++] }
else { $b .= $h->{hv}{$k} }
$b .= "\r\n";
}
$b .= "\r\n";
if (exists $h->{c}) {
if (exists $h->{hv}{"transfer-encoding"} and $h->{hv}{"transfer-encoding"} !~ /^identity$/i) {
$b .= sprintf("%x\r\n", length($h->{c})) . $h->{c} . "\r\n0\r\n\r\n";
} else {
$b .= $h->{c};
}
}
$b;
}
sub vcmp ($$) {
my ($a, $b) = @_;
version->parse($a) <=> version->parse($b);
}
sub vsat {
my ($pkg, $ver) = @_;
return vcmp($^V, $ver) >= 0 if $pkg eq 'perl';
if (my $pid = fork) {
die unless $pid == waitpid $pid, 0;
not $?;
} else {
exit not eval {
require $pkg =~ s|::|/|gr . '.pm';
$pkg->VERSION($ver);
};
}
}
sub rf {
local (@ARGV, $/) = @_;
<>;
}
1;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.636 second using v1.00-cache-2.02-grep-82fe00e-cpan-f5108d614456 )