如何在不使用 :content_file 选项的情况下将响应作为文件处理?

发布于 2024-08-24 03:08:35 字数 323 浏览 5 评论 0原文

示例代码:

my $ua = LWP::UserAgent->new;  
my $response = $ua->get('http://example.com/file.zip');
if ($response->is_success) {
    # get the filehandle for $response->content
    # and process the data
}
else { die $response->status_line }

我需要将内容作为文件打开,而不事先将其保存到磁盘。你会怎么做?

Example code:

my $ua = LWP::UserAgent->new;  
my $response = $ua->get('http://example.com/file.zip');
if ($response->is_success) {
    # get the filehandle for $response->content
    # and process the data
}
else { die $response->status_line }

I need to open the content as a file without prior saving it to the disk. How would you do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

注定孤独终老 2024-08-31 03:08:35

您可以打开一个指向标量的假文件句柄。如果文件参数是标量引用,Perl 会将标量的内容视为文件数据而不是文件名。

open my $fh, '<', $response->content_ref;

while( <$fh> ) { 
    # pretend it's a file
}

You can open a fake filehandle that points to a scalar. If the file argument is a scalar reference, Perl will treat the contents of the scalar as file data rather than a filename.

open my $fh, '<', $response->content_ref;

while( <$fh> ) { 
    # pretend it's a file
}
心凉怎暖 2024-08-31 03:08:35

不完全是一个文件,但这里有一个相关的问题: 纯 Perl 中从另一个 HTTP 资源进行流式传输的最简单方法是什么?

Not quite a file, but here is a relevant SO question: What is the easiest way in pure Perl to stream from another HTTP resource?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文