小编Gno*_*owl的帖子

如何正确使用perl引用

我在这里有关于refs的非常noob-ish问题,但至少仍然让我感到困惑......
在下面的代码示例中,我正在尝试创建数组的哈希:

#!/usr/bin/perl

use strict;
use warnings;
use 5.010;
use Data::Dumper;

$Data::Dumper::Sortkeys = 1;
$Data::Dumper::Terse = 1;
$Data::Dumper::Quotekeys = 0;

my @a1 = ( 'a1', 1, 1, 1 );
my @a2 = ( 'a2', 2, 2, 2 );

my $a1_ref = \@a1;
my $a2_ref = \@a2;

my @a = ( $a1_ref, $a2_ref );

my %h = ();

for my $i ( 1 .. 2 ) {
        $h{"$i"} = \@a;
}

say Dumper \%h;
Run Code Online (Sandbox Code Playgroud)

Dumper输出是

{
          '1' => [
                   [
                     'a1', …
Run Code Online (Sandbox Code Playgroud)

perl reference

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

使用带有多个引用参数的子进程 Popen

我正在尝试使用 Python 的子进程以非交互方式在 gdb 中执行几个命令。

我在 shell 中执行的等效命令是:

gdb - 9833 -ex "set someval=50" -ex "p someval" --batch
Run Code Online (Sandbox Code Playgroud)

我想要以下输出:

[Thread debugging using libthread_db enabled]
[New Thread 0x2b6c64f09dc0 (LWP 9833)]
[New Thread 0x549ec940 (LWP 12128)]
[New Thread 0x585f2940 (LWP 12127)]
: ...
0x0000003670407655 in pthread_join () from /lib64/libpthread.so.0
$1 = 50
Run Code Online (Sandbox Code Playgroud)

当我尝试在 Python 中编写脚本以获得相同的输出时,不会执行 gdb 参数。我正在使用 cmdline args 来填充命令字符串。

当我打印输出时,我看到 gdb 附加到 pid 但我没有看到 gdb 打印输出,也没有执行设置。

这是我的脚本:

cmd = ['gdb','-',pid,'-ex','"set ' + sys.argv[2] + '=' + sys.argv[3] + '"','-ex','"p ' + …
Run Code Online (Sandbox Code Playgroud)

python bash

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

标签 统计

bash ×1

perl ×1

python ×1

reference ×1