小编Dav*_*d B的帖子

如何在Perl中序列化闭包?

我认为使用一个例子可能是最好的问题:

use strict;
use warnings;
use 5.010;
use Storable qw(nstore retrieve);

local $Storable::Deparse = 1;
local $Storable::Eval    = 1;

sub sub_generator {
    my ($x) = @_;

    return sub {
        my ($y) = @_;
        return $x + $y;
    };
}

my $sub = sub_generator(1000);
say $sub->(1); # gives 1001
nstore( $sub, "/tmp/sub.store" );
$sub = retrieve("/tmp/sub.store");
say $sub->(1); # gives 1
Run Code Online (Sandbox Code Playgroud)

当我转储时,/tmp/sub.store我看到:

$VAR1 = sub {
            package Storable;
            use warnings;
            use strict 'refs';
            my($y) = @_;
            return $x + …
Run Code Online (Sandbox Code Playgroud)

perl serialization closures store function

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

如何在Perl中实现二进制搜索?

我想在Perl中实现二进制搜索算法.我的'数组'按递减顺序排序(不是实际数组,而是获取索引并返回值的函数).问题是可能存在一系列相同的值.如果我的搜索值在这样的范围内,我想返回包含它的第一个索引.

这就是我写的:

# get_val should be a *decreasing* function for idexes $i in min..max,
# formally: for any $i,$j s.t. $max>=$i>$j>=$min :
# $get_val_subref($i, $extra) <= $get_val_subref($j, $extra)
# min and max are the inclusive boundaries for the search
# get_val sub should get an index in min..max and an extra data reference, and return
# the value for the given index
# returns the smallest index $i in min..max for which $get_val_subref($j, $extra)
# returns $searched_val, or undef if …
Run Code Online (Sandbox Code Playgroud)

perl binary-search

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

什么是友好的模块,允许从Perl查询MySQL数据库?

搜索CPAN产生了如此多的结果,我不知道从哪里开始.我需要一个简单而友好的模块来进行一些基本的查询.

mysql sql perl

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

我可以将Moose属性"写一次"吗?

我想有一个非必需的Moose属性,只能设置一次.

如果我使用is => 'ro'我必须在创建对象时设置属性,但我希望能够在之后添加它(只要它尚未设置).

perl moose

6
推荐指数
2
解决办法
276
查看次数

如何构建所有懒惰的Moose功能?

我在Moose对象中有一堆懒惰的功能.

一些建筑商需要一些时间来完成.

我想nvoke所有构建器(转储"完整"对象).我可以一次性构建所有延迟功能,还是必须手动调用每个功能以使其运行?

perl moose

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

如何将Excel/OpenOffice/LibreOffice图表导出到SVG?

我正在使用一种流行的电子表格应用程序(Excel/OpenOffice/LibreOffice Graph)来创建一些漂亮的图表.

是否可以从任何这些程序将图表导出为SVG格式?

excel charts svg openoffice.org libreoffice

6
推荐指数
2
解决办法
7887
查看次数

Java分析:java.lang.Object.hashCode占用了一半的CPU时间,但从未明确地调用过

我已经使用了多线程程序的基准测试,-agentlib:hprof=cpu=samples 并且惊讶地发现结果中有以下行:

rank   self  accum   count trace method
   1 52.88% 52.88%    8486 300050 java.lang.Object.hashCode
Run Code Online (Sandbox Code Playgroud)

我从未在程序中显式调用hashCode().这可能是什么原因?我如何理解这次"浪费"的来源以及它是否正常?

谢谢,大卫

java benchmarking profiling hashcode hprof

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

R中的`=`和`<-`是否完全相同?

可能重复:
R中的赋值运算符:'='和'< - '

这只是一种风格偏好吗?

据我所知,它们是一样的.

我看到很多人更喜欢"更长"的<-版本,我不知道为什么(可能远离===混淆?)

r assignment-operator

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

perl中的简单并行处理

我有一些代码块,在一些对象的函数内,可以并行运行并为我加速.

我尝试使用subs::parallel以下方式(所有这些都在函数体中):

my $is_a_done = parallelize { 
                              # block a, do some work
                              return 1;
                             };
my $is_b_done = parallelize { 
                              # block b, do some work
                              return 1;
                             };
my $is_c_done = parallelize { 
                              # block c depends on a so let's wait (block)
                              if ($is_a_done) {
                               # do some work
                              };
                              return 1;
                             };
my $is_d_done = parallelize { 
                              # block d, do some work
                              return 1;
                             };

if ($is_a_done && $is_b_done && $is_c_done && $is_d_done) …
Run Code Online (Sandbox Code Playgroud)

parallel-processing perl

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

我怎么知道我在哪个子程序?

有没有办法获取一段perl代码的封闭子程序的名称?例如:

sub foo { print where_am_i(); }
Run Code Online (Sandbox Code Playgroud)

将输出'foo'.

perl subroutine

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