Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将其转换为Perl curl-v-H“;AUTH_USER:$USER"&引用$url";1>&引用$tmpfile“;2>&引用$hdrfile“;_Perl_Shell_Curl_Libcurl_Filehandle - Fatal编程技术网

将其转换为Perl curl-v-H“;AUTH_USER:$USER"&引用$url";1>&引用$tmpfile“;2>&引用$hdrfile“;

将其转换为Perl curl-v-H“;AUTH_USER:$USER"&引用$url";1>&引用$tmpfile“;2>&引用$hdrfile“;,perl,shell,curl,libcurl,filehandle,Perl,Shell,Curl,Libcurl,Filehandle,我试图将这个shell命令转换成perl,我正在使用WWW::Curl::Easy 我想将详细内容写入另一个文件,并将URL内容放入另一个文件中。到目前为止,我已经能够卷曲URL并向其添加标题 现在,我只想将asshell命令提到1>的输出写入一个文件并 2> 进入antohter文件,因为它在shell中 my $curl = WWW::Curl::Easy->new(); $curl->setopt(CURLOPT_HEADER,1); $cur

我试图将这个shell命令转换成perl,我正在使用WWW::Curl::Easy

我想将详细内容写入另一个文件,并将URL内容放入另一个文件中。到目前为止,我已经能够卷曲URL并向其添加标题

现在,我只想将asshell命令提到1>的输出写入一个文件并

2> 进入antohter文件,因为它在shell中

my $curl = WWW::Curl::Easy->new();
        $curl->setopt(CURLOPT_HEADER,1); 
        $curl->pushopt(WWW::Curl::Easy::CURLOPT_HTTPHEADER,['AUTH_USER:John']);
        $curl->setopt(WWW::Curl::Easy::CURLOPT_URL,"www.abc.com");
        $curl->setopt(CURLOPT_VERBOSE,1);
我如何将www.abc.com的内容

<html>
<body>
<marquee>abc is up </marquee>
</body>
</html>

美国广播公司上台了
合并成一个文件

并将其保存到另一个文件中

> GET / HTTP/1.1
Host: abc-01
Accept: */*
AUTH_USER:hojn

< HTTP/1.1 200 OK
......
>GET/HTTP/1.1
主持人:abc-01
接受:*/*
授权用户:hojn
粗略阅读并发现您可能需要:

    # A filehandle, reference to a scalar or reference to a typeglob can be used here.
    my $response_body;
    $curl->setopt(CURLOPT_WRITEDATA,\$response_body);

    my $response_header;
    $curl->setopt(CURLOPT_WRITEHEADER,\$response_header);

使用libcurl时,将其放在手边是很有用的

浏览这些选项,我们可以找到和



注意:我使用Net::Curl而不是WWW::Curl,因为我知道并信任它。以上内容也适用于WWW::Curl,只要它为
CURLOPT\u WRITEFUNCTION
CURLOPT\u HEADERFUNCTION
提供了一个Perl感知的默认值。如果没有,您也需要为这些选项提供值。

那么我们在哪里定义文件句柄呢,假设我们必须写入/usr/bin/header.txt/usr/bin/content.txt中的一个文件,您在哪里定义它?您定义它并写入它,就像您对任何文件一样。响应体也包含响应头,我只想将html代码写入一个文件,并在另一个文件中详细说明,但是她的响应体包含了完整的响应,我只想把URL的html代码写进data.out文件中的一个文件头也因为某种原因被写进了data.out中,我只想在data.out中编写html代码。任何实现header.out的方法都是完美的,但是data.out也包含header.out中的数据
use strict;
use warnings;

use Net::Curl::Easy qw( /^CURLOPT_/ );

my $url = 'http://stackoverflow.com/';

my $easy = Net::Curl::Easy->new();

open(my $fh_header, '>:raw', 'header.out') or die $!;
open(my $fh_data,   '>:raw', 'data.out'  ) or die $!;

$easy->setopt(CURLOPT_URL,         $url);
$easy->setopt(CURLOPT_WRITEHEADER, $fh_header);
$easy->setopt(CURLOPT_WRITEDATA,   $fh_data);
$easy->perform();