小编use*_*021的帖子

Perl中存储表格数据的最佳数据结构是什么?

我有一张包含以下数据的表格

1.1.1.1   routerA  texas
2.2.2.2   routerB  texas
3.3.3.3   routerC  california
Run Code Online (Sandbox Code Playgroud)

Perl中存储此数据的最佳数据结构是什么?我正在考虑以IP地址作为密钥存储在散列哈希中

1.1.1.1 
 routerA => texas,
2.2.2.2
 routerB => texas,
3.3.3.3
 routerC => california
Run Code Online (Sandbox Code Playgroud)

但是,如果我想获得德州的所有IP地址,我的数据结构可能不够灵活.如果我关心德克萨斯州的所有IP地址,有没有更好的存储方式?

perl perl-data-structures

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

从哈希中删除第一个键值对

我有这样的哈希:

%hash = ('test' => 1,
     'test1' => 2,
     'test2' => 3,);
Run Code Online (Sandbox Code Playgroud)

我想对此哈希进行排序并从哈希中删除第一个键值对.如果我这样做,(排序键%hash)[0],我可以访问第一个键.但是,如何删除该键值对?

如果我做

delete (sort keys %hash)[0]
Run Code Online (Sandbox Code Playgroud)

Perl抛出错误,

delete参数不是HASH或ARRAY元素

perl

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

有没有像冲洗正则表达式匹配特殊变量?

我有以下示例代码

#!/usr/bin/perl
use strict;
use warnings;

my $b = "Size: 200 GB";
if ($b =~ /Size: (\d+) GB/) {
    my $match1 = $1;
    print "Match1 : $match1\n";
}

my $match2;
my $c = "Size:  GB";
$c =~ /Size: (\d+) GB/;
$match2 = $1;
print "Match2 : $match2\n";
Run Code Online (Sandbox Code Playgroud)

如果我按原样运行此代码,$ match2将获得值200,因为$ 1从前一个块分配了200.如果$ c ="Size:400 GB",则$ match2变为400,因为从这里填充$ 1值:$ c =〜/ Size:(\ d +)GB /; 我可以通过if if语句来解决这个问题:if($ c =〜/ Size:(\ d +)GB /){$ match2 = $ 1; 但是,每次刷新1美元的价值是否有更好的方法?

perl

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

将哈希和变量传递给子例程

my %hash;

my $input2 = "message";

#calling subroutine check_something

$self->check_something (%hash, message => $input2);

sub check_something {

my $self            = shift;
my %p               = @_;
my $message         = $p{message};
my %hash            = @_;

# do some action with the %hash and $input2;

}
Run Code Online (Sandbox Code Playgroud)

我构建一个哈希(%哈希),并有另一个我想传递给子程序的变量.但是,在子程序中,我正在做的方式"我的%hash = @_"也获得了$ input2的值.我该怎么做才能避免这种情况?

perl

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

将字符串中的数字与字母和数字匹配

我需要编写一个Perl正则表达式来匹配单词中的数字和字母和数字.示例: test123.我想编写一个只匹配数字部分并捕获它的正则表达式

我正在尝试这个\S*(\d+)\S* ,它只捕获3但不捕获123.

regex perl

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

将文件传输到1000台服务器的有效方法

我最近在接受采访时被问到这个问题.让我们假设我有2000台服务器.我想从中央服务器将5GB文件传输到所有这些服务器.想出一个有效的算法.

我的回答:我将使用perl/python将文件从集中式服务器scp到第一台服务器.与此同时,我也将开始向其他服务器发送文件.我觉得一个接一个地做效率非常低,因此并行做会加快.

有一个更好的方法吗 ?

scp file-transfer

0
推荐指数
2
解决办法
4117
查看次数

标签 统计

perl ×5

file-transfer ×1

perl-data-structures ×1

regex ×1

scp ×1