小编roh*_*lla的帖子

访问包中的 Moose 对象以在外部显式调用

对于 Moose 包,我尝试在 Perl(非 moose)中创建一个对象,然后尝试访问外部的方法。解释这种情况的代码在这里。

package person;
{
    use Moose;
    sub test {
        print "my test print";
    }
}

package people {
    use person;
    my $obj = person->new();
}

$people::obj->test()
Run Code Online (Sandbox Code Playgroud)

我在执行此 perl 代码时遇到以下错误。

Can't call method "test" on an undefined value at test.pm 
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?

perl moose

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

如何更新哈希属性,更新 Perl Moose 中的其他哈希属性

这里 hash2 属性依赖于 hash1。事实上,hash2 是由 hash1 驱动的。例如,

hash1 -> key1 => value1,key2 => value2 等等。

hash2 -> key1 => 6, key2 => 6 etc. it is length(value from hash1, going to hash2)

尝试过类似下面的方法,但没有帮助。

has 'hash1' => (
    is        => 'rw',
    isa       => 'HashRef[Str]',
    default   => sub { {} },
    handles   => {
        map { $_ . '_hash1' => $_ } @hash_delegations
    },
);

has 'hash2' => (
    is        => 'rw',
    isa       => 'HashRef',
    builder   => '_filter_hash1',
    handles   => {
        map …
Run Code Online (Sandbox Code Playgroud)

perl moose

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

尝试使用递归方法生成字符串的子集

尝试在python中使用递归实现算法。似乎缺少一些我无法调试的东西。

我的方法是具有两个递归分支,并在每次递归时传递一个元素。详细信息如下:

## input pattern : "ab"
## output pattern : ["", "a", "b", "ab"]
Run Code Online (Sandbox Code Playgroud)

递归树将类似于此模式

#           "ab" [ROOT]
#                   |
#           -a           +a
#           |             |
#       -b      +b    -b    +b
# =>    ""      "b"     "a"     "ab"
Run Code Online (Sandbox Code Playgroud)

我现有的代码如下:无法正常工作。

def gen_subset(slist):
    def helper(slist,i,temp,out):
        if len(slist) == i:
            out.append(temp)
            return()
        else:
            helper(slist,i+1,temp,out)
            temp.append(slist[i])
            helper(slist,i+1,temp,out)

    out = []
    helper(slist,0,[],out)
    return out

s = "ab"
print (gen_subset([c for c in s]))
Run Code Online (Sandbox Code Playgroud)

此代码产生错误的结果。

输出量

[['b', 'a', 'b'], ['b', 'a', 'b'], ['b', 'a', 'b'], ['b', …
Run Code Online (Sandbox Code Playgroud)

python recursion python-3.x

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

perl拼接数组缺少条目

我正在使用 splice 将数组切割成多个部分。我正在使用 perl。对于下面给定的代码:

my @array = (1..10021);
my @mypart;
my $slice_size = 500;
foreach (@array) {
    @mypart = splice(@array, 0, $slice_size);
    print STDOUT scalar(@mypart). "\n";
}
Run Code Online (Sandbox Code Playgroud)

结果如下:

% time ./splice_perf.pl
500
500
500
500
500
500
500
500
500
500
500
500
500
500
500
500
500
500
500
500
21
0.269u 0.039s 0:00.48 60.4% 0+0k 0+0io 0pf+0w
Run Code Online (Sandbox Code Playgroud)

请注意,21 是最后一个。

而如果我将数组大小更改为 [my @array = ( 1..10020 );]

输出缺少最后一位数字,即 20。输出如下所示:

% time ./splice_perf.pl
500
500
500
500
500
500
500 …
Run Code Online (Sandbox Code Playgroud)

perl

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

是否允许在系统verilog中实例化always_comb块内的模块?

是否允许always_comb在系统verilog中实例化块内的模块?

always_comb 
begin
   OR OR1 (.Y(A), .A(Z), 
end
Run Code Online (Sandbox Code Playgroud)

verilog system-verilog

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

标签 统计

perl ×3

moose ×2

python ×1

python-3.x ×1

recursion ×1

system-verilog ×1

verilog ×1