小编YoD*_*Dar的帖子

如何限制在Perl脚本的特定部分中花费的时间?

有没有办法建立一个时间计数器,使脚本的部分运行只要它滴答?例如,我有以下代码:

for my $i (0 .. $QUOTA-1) {
    build_dyna_file($i);
    comp_simu_exe;
    bin2txt2errormap($i);
}
Run Code Online (Sandbox Code Playgroud)

从理论上讲,我想运行这个循环3分钟,即使循环指令尚未完成,它仍应在3分钟后突破循环.

实际上程序会打开一个时间计数器窗口,它与脚本的一部分并行工作(每次调用它).

另外,子调用'comp_simu_exe'运行外部模拟器(在shell中),当超时结束时 - 此过程也必须被杀死(不要假设在一段时间后返回).

sub comp_simu_exe{

system("simulator --shell");
}
Run Code Online (Sandbox Code Playgroud)

系统函数调用之间是否有任何关联?

perl timeout

7
推荐指数
2
解决办法
4373
查看次数

如何将程序的输出同时指向控制台和日志文件?

如何同时将输出打印到终端和文件?

$ perl foo.pl > foout.txt
Run Code Online (Sandbox Code Playgroud)

不允许我看到实时流程.

有没有什么方法可以实时看到输出过程并在文件的屏幕输出结束?

bash redirect stdout

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

如何使用Perl将连接数据线转换为方案块?

我正在寻找一种方法将信号连接转换为简单的方案或图形.

假设我有2个组件,它们周围有2个线路/信号:

component A:
 input - S1
 output - S2

component B: 
 input - S2
 output - S1
Run Code Online (Sandbox Code Playgroud)

这将是输入数据文件,输出将是一个方案,将其显示为2个块,其周围有连接线或插图.

我想知道在Perl的世界中是否存在这种实现.

perl graph

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

如何检查Perl中的哈希中是否存在密钥?

我想检查参数$PGkey是否等于哈希表中具有相同名称的键.此外,我希望尽可能接近这种格式:

while(<PARAdef>) {
    my($PGkey, $PGval) = split /\s+=\s+/;
    if($PGkey == $hash{$PGkey}) {
        print PARAnew "$PGkey = $hash{$PGkey}->[$id]\n";
    } else {
        print PARAnew "$PGkey = $PGval\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法吗?

perl hash exists

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

Tie :: IxHash在Hash of Hashes中排序关联数组?

如何保留为第二个VAR添加哈希元素的顺序?

(散列哈希)

例如:

use Tie::IxHash;
my %hash;
tie %hash, "Tie::IxHash";
for my $num (0 .. 5){
     $hash{"FirstVal$num"}++;
}
for my $num (0 .. 5){
     $hash{"FirstValFIXED"}{"SecondVal$num"}++;
}
 print Dumper(%hash);
Run Code Online (Sandbox Code Playgroud)

转储结果时,$ VAR14不保留插入顺序:

$VAR1 = 'FirstVal0';
$VAR2 = 1;
$VAR3 = 'FirstVal1';
$VAR4 = 1;
$VAR5 = 'FirstVal2';
$VAR6 = 1;
$VAR7 = 'FirstVal3';
$VAR8 = 1;
$VAR9 = 'FirstVal4';
$VAR10 = 1;
$VAR11 = 'FirstVal5';
$VAR12 = 1;
$VAR13 = 'FirstValFIXED';
$VAR14 = {
           'SecondVal5' => 1,
           'SecondVal4' => 1,
           'SecondVal2' => …
Run Code Online (Sandbox Code Playgroud)

perl perl-hash

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

如何使用Perl解压缩二进制文件?

我有两个大小相等的二进制文件,但不是值.我使用unpack如下,但结果很奇怪.

当我使用"大"二进制文件时,两个输出都显示部分结果:

一个二进制文件开始好坏 -

第二个二进制文件在开始时出错.

你认为哪里可能是弱点?

open(BIN_FILE1, "<bin_files/BINF1.bin") or die("Cannot open file for writing");
open(BIN_FILE2, "<bin_files/BINF2.bin") or die("Cannot open file for writing");
binmode(BIN_FILE1);
binmode(BIN_FILE2);
# N An unsigned long (32-bit) in "network" (big-endian) order.
my @values_tmp1 =  unpack("N*", <BIN_FILE1>);
my @values_tmp2 =  unpack("N*", <BIN_FILE2>);
close (BIN_FILE1);
close (BIN_FILE2);
my $tmp_bin1 = @values_tmp1;
my $tmp_bin2 = @values_tmp2;
print "\nBIN FILE1 LENGTH: ",$tmp_bin1,"\n";
print "\nBIN FILE2 LENGTH: ",$tmp_bin2,"\n";
Run Code Online (Sandbox Code Playgroud)

输出是:

BIN FILE1 LENGTH:1203

BIN FILE2 LENGTH:124

输入文件是:

-rw-rw-r-- 1 yodar yodar …
Run Code Online (Sandbox Code Playgroud)

perl

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

如何将BINARY文件转换/操作为ASCII文件?

我正在寻找一种方法将TEXT字符从4byte BINARY文件转换为数组或TEXT文件,

让我们说我的输入文件是:

00000000  2e 00 00 00 01 00 00 00  02 00 00 00 03 00 00 00  |................|
00000010  04 00 00 00 05 00 00 00  06 00 00 00 07 00 00 00  |................|
00000020  08 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000070  00 00 00 …
Run Code Online (Sandbox Code Playgroud)

perl

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

在Perl中,如何编写和读取由密钥和数组组成的CSV文件?

我有一个问题是要正确地编写和读取由名称(键)和值数组组成的CSV文件:

testarray.csv

foo1 ,0,0,0,0,1
foo2 ,1,0,0,0,1
foo3 ,3,4,5,6,7
.
.
.
Run Code Online (Sandbox Code Playgroud)

我需要表示该文件如下:

foo# 将是关键,以下五个数字将是它的数组.

进行该操作并将其召回以供使用(不是使用Dumper)的简单方法是什么?如何使用特定键的数组中的变量?

例如,

print $hsh{'foo1'}[4];
Run Code Online (Sandbox Code Playgroud)

csv perl

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

如何使用"s ///"运算符来更改值的数量?

我有一个包含以下内容的文件:

foo1 = 1

foo2 =  2

foo3 =    8

.
.
.
Run Code Online (Sandbox Code Playgroud)

我需要用一部分内存哈希值替换该文件中的值(1,2,8 ...),具有相同键的值(foo1 - > 33,foo2 - > 44,foo3 ......)如何使用"s ///"运算符更改它?如果有其他优雅的方式来进行,我会很高兴知道.

谢谢你的帮助,

Yohad.

perl substitution

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

如何将参数传递给子程序?

我在理解子程序语法时遇到了困难.

使用以下代码:

sub build_dyne_file{
open(DYNAP, "+>$veri_dir/$dyna_para") or die $!;
    for (keys %hash){
        print DYNAP "#define ",$_," ",$hash{$_}->[$i],"\n";
    }
    close(DYNAP);
}

for (my $i = 0 ; $i <$TEST_QUOTA ; $i++){
    build_dyna_file($i);
}
Run Code Online (Sandbox Code Playgroud)

在'build dyne file'子例程中,'for循环'遍历散列键,而$ i参数在外部'for循环'中使用.

我希望你理解这个问题,如果没有 - 我会试着更恰当地解释它.

谢谢你的回答.

syntax perl

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

标签 统计

perl ×9

bash ×1

csv ×1

exists ×1

graph ×1

hash ×1

perl-hash ×1

redirect ×1

stdout ×1

substitution ×1

syntax ×1

timeout ×1