小编Jea*_*ean的帖子

按位不是Perl中的十六进制数

我有一个包含十六进制数字的长字符串.用一个补码(也用十六进制)替换每个数字的最佳方法是什么?

也就是说,如果我有

$string = "d3e5d1b8 66300f40 16010f2e \ncc1e010f 00b0b802 bbd0000f e38e0098 \n"
Run Code Online (Sandbox Code Playgroud)

我想得到

$string = "2b1a2e47 99bff0cf e9fef0d1 \n33e1fef0 ff4f47fd 442ffff0 1b71ff67 \n";
Run Code Online (Sandbox Code Playgroud)

我现在的解决方案是替换16个十六进制数字中的每一个

$string=~s/0/g/g; $string=~s/f/0/g; $string=~s/g/f/g;
...
...
16 times 
Run Code Online (Sandbox Code Playgroud)

regex string perl

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

Perl打印格式

我想在Perl中打印时将字符串格式化(用字符截断/追加)到指定的长度.

例如

$string='my_string';
printf("%04s",$string);
Run Code Online (Sandbox Code Playgroud)

应该打印

my_s
Run Code Online (Sandbox Code Playgroud)

如果

$string='my';
Run Code Online (Sandbox Code Playgroud)

我应该得到

00my
Run Code Online (Sandbox Code Playgroud)

有没有办法打印最后四个字符?

ring
Run Code Online (Sandbox Code Playgroud)

如果字符串是

$string='my';
Run Code Online (Sandbox Code Playgroud)

它应该打印

00my
Run Code Online (Sandbox Code Playgroud)

string formatting perl

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

增加Perl警告的详细程度

有没有办法增加Perl警告的冗长程度?我用它来生成警告.

#!/usr/bin/perl -w
Run Code Online (Sandbox Code Playgroud)

我对偶尔遇到的以下内容特别感兴趣.无论如何,Perl可以打印未初始化变量的名称吗?

Use of uninitialized value in printf at ./script.pl line 106, <LOG> line 323805.
Run Code Online (Sandbox Code Playgroud)

perl warnings verbosity

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

强制 GIT 拉取而不提交

我做一个

git pull
Run Code Online (Sandbox Code Playgroud)

我遇到合并冲突。我手动解决了合并冲突并再次发出 pull 但 Git 拒绝这样做,因为 Git 仍然认为存在合并冲突。

有什么方法可以强制 Git 再次执行 pull 并让它从头部寻找“差异”(如果有的话)(不提交我所做的更改)?

git version-control merge pull

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

如何使用 xxd 将偏移量插入到 hexdump?

有没有一种简单的方法可以向 xxd 生成的十六进制转储添加偏移量?

即代替

0000: <data>
0004: <data>
0008: <data>
Run Code Online (Sandbox Code Playgroud)

我应该得到

Offset+0000: <data>
Offset+0004: <data>
Offset+0008: <data>
Run Code Online (Sandbox Code Playgroud)

linux hex dump offset xxd

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

使用shell脚本将一个文件中的两个文件的内容合并

文件A:

1
3
5
7
Run Code Online (Sandbox Code Playgroud)

档案B:

2
4
6
8
Run Code Online (Sandbox Code Playgroud)

可以在shell脚本中使用文件A和文件B作为输入,并获得文件C的输出,其内容如下:

1
2
3
4
5
6
7
8  
Run Code Online (Sandbox Code Playgroud)

unix linux shell

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

提高Python代码性能

如何提高这个简单的python代码的性能?这不是re.search寻找匹配线的最佳方法,因为它比Perl慢约6倍,或者我做错了什么?

#!/usr/bin/env python

import re
import time
import sys

i=0
j=0
time1=time.time()
base_register =r'DramBaseAddress\d+'
for line in  open('rndcfg.cfg'):
    i+=1
    if(re.search(base_register, line)):
        j+=1
time2=time.time()

print (i,j)
print (time2-time1)    
print (sys.version)
Run Code Online (Sandbox Code Playgroud)

此代码大约需要0.96秒才能完成(平均10次运行)
输出:

168197 2688
0.8597519397735596
3.3.2 (default, Sep 24 2013, 15:14:17)
[GCC 4.1.1]
Run Code Online (Sandbox Code Playgroud)

而以下Perl代码在0.15秒内完成.

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

use Time::HiRes qw(time);

my $i=0;my $j=0;
my $time1=time;
open(my $fp, 'rndcfg.cfg');
while(<$fp>)
{
    $i++;
    if(/DramBaseAddress\d+/)
    {
        $j++;
    }
}
close($fp);
my $time2=time;

printf("%d,%d\n",$i,$j);
printf("%f\n",$time2-$time1);
printf("%s\n",$]);
Run Code Online (Sandbox Code Playgroud)


输出:

168197,2688
0.135579
5.012001 …
Run Code Online (Sandbox Code Playgroud)

python perl

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

Perl 继承 - 子程序覆盖

有没有办法来覆盖sub aclass_1_1,并class_2_1用新的行为(两者相同的类)不增加重写的方法都class_1_1class_2_1

package class_0
    sub a
    sub b
1;

package class_1 
    use parent 'class_0'
    sub b
1;

package class_2
    use parent 'class_0'
    sub b
1;

package class_1_1
    use parent 'class_1'
1;

package class_2_1
    use parent 'class_2'
1;  
Run Code Online (Sandbox Code Playgroud)

perl inheritance

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

在Perl中打印字符串

是否有一种简单的方法,使用子程序,可以在Perl中打印字符串而不必转义每个特殊字符?

这就是我想要做的:

print   DELIMITER <I don't care what is here> DELIMITER
Run Code Online (Sandbox Code Playgroud)

因此,如果我可以将字符串作为分隔符而不是特殊字符,那么显然会很棒.

string perl escaping character

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

哈希函数中的冲突太多

我试图将大约6400万个64位唯一无符号整数散列到1.28亿个桶(27位宽地址).我尝试了Bob Jenkin的HashLittleMurmur哈希(这些哈希函数都提供了32位哈希值,我将其屏蔽以获得27位地址).在这两种情况下,它导致大约22%的碰撞,最终只占据了37%的水桶.这是预期还是我做错了什么?我期待更少的碰撞和更好的铲斗占领.

c algorithm hash collision murmurhash

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