我正在尝试将具有1 GB aproximated大小的文件下载到具有1 GB RAM内存的服务器,因此如果我尝试将其下载到变量(下面的代码)中,则操作系统会因RAM过载而终止进程.
require LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(3600);
$ua->env_proxy;
my $response = $ua->get('http://example.com/largefile.xml');
if ($response->is_success) {
print "File downloaded\n";
}
else {
die $response->status_line;
}
Run Code Online (Sandbox Code Playgroud)
我认为可行的唯一方法是使用system("wget ...")(或卷曲或类似的东西),但我确信有一种正确的方法可以直接使用Perl.
你知道任何方法或选项直接下载到文件而不使用系统调用吗?
为什么这不起作用?试图做一个负面的预测.我试图从垃圾箱中取出数字,除了隔离箱和检查箱.当我使用前面的^代码匹配括号中的所有数字.当我删除^它什么都不匹配.
你也可以使用"或运算符|" 在负面的向前看?我想要^(?!Quarantine_Bin | Inspection_Bin)
我也试图特别否定[^Quarantine_Bin]它仍然匹配.
^(?!Quarantine_Bin)\([0-9]+\)
Run Code Online (Sandbox Code Playgroud)
数据
Quarantine(2),Other_Bin(2),Quarantine_Bin(2),Quarantine_Bin(2),
Quarantine_Bin(5),Inspection_Bin(3),Regular_Bin(5),other(2)
Run Code Online (Sandbox Code Playgroud) 我有以下格式的密钥哈希:
scaffold_902_159
scaffold_2_1980420
scaffold_2_10
scaffold_10_402
Run Code Online (Sandbox Code Playgroud)
我想打印出以下列格式排序的哈希:
scaffold_2_10
scaffold_2_1980420
scaffold_10_402
scaffold_902_159
Run Code Online (Sandbox Code Playgroud)
所以首先我必须以数字方式订购第一个号码,然后参加最后一个号码.我不希望正则表达式搜索"scaffold_",因为这可能会有所不同.我的意思是,我可以使用其他格式的哈希,例如" blablabla_NUMBER_NUMBER,或blablablaNUMBER_NUMBER ".键_NUMBER的最后一部分是唯一永久的部分.
我有这个代码,但只能按数字排序第一个数字:
my @keys = sort {
my ($aa) = $a =~ /(\d+)/;
my ($bb) = $b =~ /(\d+)/;
$aa <=> $bb;
} keys %hash;
foreach my $key (@keys) {
print $key;
}
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
我的意见:
my $tmp = "rrccllrrc";
Run Code Online (Sandbox Code Playgroud)
预期产出:
$tmp = "right right center center left left right right center"; #End should not be spaced definitely.
Run Code Online (Sandbox Code Playgroud)
我的代码:
$tmp=~s/c/center /g;
$tmp=~s/l/left /g;
$tmp=~s/r/right /g;
Run Code Online (Sandbox Code Playgroud)
有人可以帮助缩短尽可能多地替换正则表达式的方法.
以下程序在第二次调用eval时停止.这是预期的吗?我读了perldoc -f eval,并且惊讶于没有显示打印"2:..."的输出.
eval {die("The curly braces seem to rescue me! Life moves on")};
print "1: $@\n";
eval die("Program actually terminates here! Subsequent prints are not shown");
print "2: $@\n";
Run Code Online (Sandbox Code Playgroud) 我想在Perl程序中每行输入2个输入.
4 3
3 1
5 7
Run Code Online (Sandbox Code Playgroud)
我们可以通过这个声明在Ruby中做到这一点
a,b=gets.split.map &:to_i
Run Code Online (Sandbox Code Playgroud) 我在使用Perl从文本文件读取的字符串列表的频率计算方面遇到了麻烦.我想要做的是,分别计算每一行中的字符数.我的代码可以正常工作,但它也将原始字符串计算为单个字符.
这是我的代码,
sub cal_frequency{
while (my @row = <$fd>){
chomp;
for (my $i=0; $i<=147; $i++){
my %count;
print "$row[$i]\n";
foreach my $str (split //, $row[$i]) {
$count{$str}++;
}
foreach my $str (sort keys %count) {
printf "%-31s %s\n", $str, $count{$str} ;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出.
HMHHMSHHHNHHMEHFFHHHHHHHDHDE
1
D 2
E 2
F 2
H 17
M 3
N 1
S 1
LLLWLFLLWLWLLWWLLLLFLLLLWLFW
1
F 3
L 18
W 7
TTTTTDTTTTTTTTTTSTTTTSSTTATT
1
A 1
D 1
...
...
...
Run Code Online (Sandbox Code Playgroud)
有没有人可以帮我弄清楚代码有什么问题.
我想要一个名为system的集合,在该集合下有一个名为sub_systems的文档,在其下有三个名为high mid&low的文档。每个高,中和低分别包含多个文档,如下所示
systems: {
sub_system_1 : {
high :{ {task1},
{task2},
.......
},
mid :{ {task1},
{task2},
.......
},
low :{ {task1},
{task2},
.......
},
},
sub_system_2 : {
high :{ {task1},
{task2},
.......
},
mid :{ {task1},
{task2},
.......
},
low :{ {task1},
{task2},
.......
},
},
............
}
Run Code Online (Sandbox Code Playgroud)
因此,下面是我的问题1.我将如何创建此类嵌套文档。2.如何在系统集合中插入新的子系统。3.如何在子系统文件下插入新的优先级(高,中,低)。4.如何在特定子系统和特定优先级(高,低,中)文档中插入新任务
我想使用mongo shell以及perl mongodb来了解这一点
我有一个与Perl中的多级继承有关的问题.
这是我的代码
mod.pm
package first;
sub disp {
print "INSIDE FIRST\n";
}
package second;
@ISA = qw(first);
sub disp {
print "INSIDE SECOND\n";
}
package third;
@ISA = qw(second);
sub new {
$class = shift;
$ref = {};
bless $ref, $class;
return $ref;
}
sub show {
$self = shift;
print "INSIDE THIRD\n";
}
1;
Run Code Online (Sandbox Code Playgroud)
prog.pl
use mod;
$obj = third->new();
$obj->show();
$obj->disp();
Run Code Online (Sandbox Code Playgroud)
我有一个.pm文件,其中包含三个类.我想disp使用第三类对象访问第一个类中的方法.我不确定这是怎么回事.
我尝试使用两种方式访问:
但我不确定如何使用第三类对象直接访问它.
我有一个具有以下结构的MySQL表.
alid bigint(20),
ndip varchar(20),
ndregion varchar(20),
occ_num int(3),
Delta_Flag int(1)
Run Code Online (Sandbox Code Playgroud)
从表中选择数据后,我将获取所有引用的数据并作为字符串值.
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use FindBin;
use lib $FindBin::Bin;
use Database;
my $pwd = $FindBin::Bin;
my $db = Database->new( 'mysql', "$pwd/config.ini" );
my $db1 = Database->new( 'mysql', "$pwd/config2.ini" );
my @tables = qw( AutoTT_AlarmStatus_Major1 );
for my $table ( @tables ) {
my $query_select = "SELECT alid, ndip, ndregion, occ_num, Delta_Flag FROM $table LIMIT 1";
my $result = $db->db_get_results( $query_select );
print Dumper( $result ); …Run Code Online (Sandbox Code Playgroud) perl ×10
regex ×2
dbi ×1
download ×1
eval ×1
inheritance ×1
large-files ×1
mongodb ×1
mysql ×1
oop ×1
perl-module ×1
sorting ×1