小编Mat*_*cob的帖子

Perl LWP:为什么 IO::Socket::SSL 使用 TLS 1.0,而 Net::SSL 使用 TLS 1.2?

当我运行以下代码时:

use strict;
use warnings;

use IO::Socket::SSL;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new(ssl_opts => {
    verify_hostname => 0,
});

my $res = $ua->get('https://internal.foo.bar.baz:20002');
print $res->as_string;
Run Code Online (Sandbox Code Playgroud)

我从 LWP 收到内部错误:

500 Can't connect to internal.foo.bar.baz:20002 (Bad file descriptor)
Content-Type: text/plain
Client-Date: Fri, 29 Jun 2018 21:23:13 GMT
Client-Warning: Internal response

Can't connect to internal.foo.bar.baz:20002 (Bad file descriptor)

Bad file descriptor at D:/strawberry/perl/site/lib/LWP/Protocol/http.pm line 50.
Run Code Online (Sandbox Code Playgroud)

网络流量显示这是一个“客户端问候”,随后服务器立即重置,并且协议是 TLSv1。服务器仅允许 TLS 1.2 连接,因此这是有道理的。

线鲨1

当我更改代码以指定客户端应使用 TLS 1.2 时,我得到了相同的响应。

my $ua = LWP::UserAgent->new(ssl_opts => {
    verify_hostname …
Run Code Online (Sandbox Code Playgroud)

perl ssl lwp io-socket-ssl

5
推荐指数
1
解决办法
9352
查看次数

Perl是否有交互式命令行环境?

嗨,我想知道Perl是否有类似于Rstudio的东西?这是运行命令的能力,将所有变量保留在内存中而不退出脚本.

例如,假设我执行此命令my $temp = 83;然后不是结束脚本而是更改值$temp = 22; print "$temp \n";,依此类推,但我不会结束脚本并继续处理它.在处理大型数据集和一般工作流程时,这将非常有用.我遇到的最接近的是使用插件的Visual Studio Code,我可以在我的脚本中执行特定的代码块.但是我没有找到一种方法将变量持久保存在内存中.
谢谢!

perl read-eval-print-loop

3
推荐指数
1
解决办法
185
查看次数

如何使用数组切片同时访问数组的多个元素?

我正在尝试修改此脚本:

#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
use Math::Vector::Real;
use constant DEG_PER_RAD => 45 / atan2(1, 1);

my ( $source, $out ) = qw/ OUT4 OUTABA12 /;

open my $in_fh,  '<', $source or die qq{Unable to open "$source" for input: $!\n};
open my $out_fh, '>', $out    or die qq{Unable to open "$out" for output: $!\n};


my @data;
push @data, V(split) while <$in_fh>;
my @aoa;

for my $i ( 0 .. $#data ) {
    for my $j ( 0 .. …
Run Code Online (Sandbox Code Playgroud)

perl

0
推荐指数
1
解决办法
61
查看次数

如何在正则表达式模式中使用包含方括号的字符串变量?

试图用方括号匹配一个字符串。

例如:

my $foo = "debug_bus[0]";
my $bar = "debug_bus[0][12:0] = some_value;";

if ($bar =~ $foo)
{
    print "Match\n";
}
else
{
    print "No Match\n";
}
Run Code Online (Sandbox Code Playgroud)

我会期望“匹配”,但是我不断收到“不匹配”,这使我相信“​​ [0]”中的括号可能会引起问题?

perl

0
推荐指数
1
解决办法
834
查看次数

使用整数数组选择数组元素

是否可以使用整数数组(索引)选择数组的特定元素?我知道这可以通过循环轻松完成,但我希望有一个单行解决方案.

例:

@arr = qw(a b c d e f);
@arr2 = qw( 0 2 4);
Run Code Online (Sandbox Code Playgroud)

而不是:

@arr3 = @arr[0,2,4];
@arr3 = @arr[@arr2]; #won't work as @arr2 returns number of elements
@arr3 = @arr[join(',', @arr2)] #won't work as join returns a string
Run Code Online (Sandbox Code Playgroud)

arrays perl subset

-2
推荐指数
1
解决办法
54
查看次数

map和grep如何工作?

我在脚本中碰到这个代码来了,能否请您解释一下map,并grep在这里呢?

open FILE, '<', $file or die "Can't open file $file: $!\n";
my @sets = map {
                  chomp;
                  $_ =~ m/use (\w+)/;
                  $1;
                }
grep /^use/, ( <FILE> );

close FILE;
Run Code Online (Sandbox Code Playgroud)

指向的文件$file有:

use set_marvel;
use set_caprion;
and so on...
Run Code Online (Sandbox Code Playgroud)

perl

-5
推荐指数
1
解决办法
91
查看次数

标签 统计

perl ×6

arrays ×1

io-socket-ssl ×1

lwp ×1

read-eval-print-loop ×1

ssl ×1

subset ×1