我有一个整数向量,例如:2,8,11,19.
我想绘制一条长度的线,例如20,然后为列表中存在的每个值绘制一个点(在某个恒定的高度),所以我得到这样的东西:
-+-----+--+-------+-
如何在初始化后定义Moose对象子程序?
我正在使用Moose编写一个对象模块,我计划序列化(nstore)创建的对象.
检查以下(简化!)示例:
package MyObj 0.001;
use Moose;
use namespace::autoclean;
has 'size' => (
is => 'ro',
isa => 'Int',
required => 1,
);
sub some_sub {
my ($self, @more) = @_;
if ($self->size() < 100) # do something;
elsif (($self->size() < 500)) # do something else;
elsif (($self->size() < 7500)) # do something else;
# ...
}
1;
Run Code Online (Sandbox Code Playgroud)
some_sub行为不同取决于size.由于它size是只读的,因此在初始化对象后它保持不变.
所以,假设我打了some_sub几十万次,很遗憾我if每次都必须经历所有的事情.
在对象初始化之后我最好这样做一次,然后设置some_sub为更简单的函数,根本没有ifs.
但是......我怎么能这样做?
UPDATE
也许我应该添加一个 …
我看了一下Slurp的来源,我很想知道它是如何slurp()工作的:
sub slurp {
local( $/, @ARGV ) = ( wantarray ? $/ : undef, @_ );
return <ARGV>;
}
Run Code Online (Sandbox Code Playgroud)
文件在哪里打开?
我想确保scope正确地获得KiokuDB的概念.
假设我想从db1加载一个对象并将其存储在db2中.我必须同时让两个范围"开放"吗?
我试图用一些(Moose)对象序列化YAML- 只需使用YAML Dump()和Load().加载序列化对象后,在我添加use带有原始模块名称的语句之后,它才"正常工作" .如果我不使用use我不会得到任何错误,直到我尝试调用一些对象方法,然后它会呱呱叫它找不到这个方法.
我认为加载所需的类是反序列化器工作的一部分,如果我没弄错的话Storable确实是自己做的.那么YAML有什么问题吗?
另外,我注意到模块的版本没有与序列化对象一起存储.有什么方法可以添加吗?
我使用的一些库似乎向/tmp.
我想将我的脚本(以及所有导入的库)使用的“临时”目录位置更改为/new/tmp/location. 不用说,我不想影响我的脚本之外的任何内容(因此例如重新安装/tmp不是一个选项)。
我怎样才能做到这一点?
This histogram is really ugly:
hist(rbinom(10000, 20000, 0.0001),freq=F,right=F)
Run Code Online (Sandbox Code Playgroud)
I don't want spaces between my bars. I tried different breaks= methods but they all produce similar results. Any ideas?
I also want each bin value (or mean values )to be printed under the center of it's bar.
我正在尝试编写以下perl子例程.给定的是a长度数组,数组中n的索引i(0<=i<n上游窗口长度u和下游窗口长度)d.
我想迭代上游窗口和下游窗口中的值i.在最简单的情况下,这将迭代a[i-u..i-1](上游窗口)和a[i+1..i+d](下游窗口)中的值.
例如:如果我的数组是1 2 3 4 5 6 7 8 9 10,i=5并且两个窗口大小都是2,则上游值是简单的6 7,下游值是9 10.
但是,有两个并发症:
我想我的数组是循环的.如果i相对较小(接近0)或较大(接近n),则其中一个窗口可能不适合阵列.在这种情况下,我想将数组看作循环数组.例如,如果我的数组是1 2 3 4 5 6
7 8 9 10,i=8并且两个窗口大小都是4,则上游值是简单4 5 6 7但下游值是9 10 1 2.
我宁愿用某种方法迭代这些值而不将它们显式复制到新数组中,因为它们可能很长.
我使用R,我有一个很长的数字向量.我想查找此向量中的所有最大连续子范围,其中所有值都低于某个阈值.
例如,如果给定的向量是
5 5 6 6 7 5 4 4 4 3 2 1 1 1 2 3 4 5 6 7 6 5 4 3 2 2 3 4 4
我的阈值是4(即=<3),那么满足这个条件的值用x标记:
0 0 0 0 0 0 0 0 0 x x x x x x x 0 0 0 0 0 0 0 x x x x 0 0
我还想回复一些类似的东西(10,16), (24,27).我怎么做?
我有一个数组的引用$arr_ref.我想获得一个只包含i..j原始数组中的单元格的数组的引用.