标签: cpan

Perl中的快速字符串校验和函数,生成0..2 ^ 32-1范围内的值

我正在寻找具有以下属性的Perl字符串校验和函数:

  • 输入:未定义长度的Unicode字符串($string)
  • 输出:无符号整数($hash),0 <= $hash <= 2^32-1保持(0到4294967295,匹配4字节MySQL unsigned int的大小)

伪代码:

sub checksum {
    my $string = shift;
    my $hash;
    ... checksum logic goes here ...
    die unless ($hash >= 0);
    die unless ($hash <= 4_294_967_295);
    return $hash;
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,校验和函数应该快速运行,并且应该在目标空间(0.. 2^32-1)中稍微均匀地生成值以避免冲突.在这个应用程序中随机碰撞是完全非致命的,但显然我想在可能的范围内避免它们.

鉴于这些要求,解决这个问题的最佳方法是什么?

string perl checksum cpan hashcode

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

使用'cpan'安装Perl模块时如何避免sudo?

我已经从源代码安装了Perl到/ usr/local,并相应调整了我的路径,遵循brian d foy的建议.

我确定我错过了一些东西,但是,现在我正在尝试用'cpan'命令安装东西而且它失败了,因为它无法写入/ usr/local.我必须使用sudo,这对我来说感觉不对.CPAN的东西应该去另一个地方吗?必须使用sudo是正常的吗?

perl sudo cpan

10
推荐指数
4
解决办法
5053
查看次数

在有限的资源设备上加快CPAN的技巧是什么?

我最近尝试在我的手机(诺基亚n900)上升级一些Perl模块,并安装最新版本的Module::Build一小时.

大多数情况下(70%)似乎花费在解析和索引存储库信息上.

似乎有一些选项,例如每次都不重建索引缓存,或者使用CPAN :: SQLite.

我想继续在设备上使用CPAN,而不是手动安装模块.所以我想知道人们在类似的有限资源设备上取得了哪些成功(缓慢的CPU,有限的RAM,慢速磁盘(闪存))?

perl cpan

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

从CPAN使用轻微修改模块的最佳实践?

我正在使用DBI和DBD :: SQLite,现在我想使用SQLite的R*Tree功能.由于此功能不是由DBD :: SQLite的默认编译,我有一个添加-DSQLITE_ENABLE_RTREE=1@CC_DEFINE在DBD :: SQLite的的Makefile.PL变量.如果我做'perl Makefile.PL && make && make install',一切都在我的机器上本地工作正常,但最终需要可部署/可分发给最终用户.

在这样的情况下我该怎么办?我应该复制源代码,grep源代码,并创建一个DBD :: SQLite :: WithRTree吗?创建DBD :: SQLite 1.31.1的私有版本(其中1.31是DBD :: SQLite的当前版本)?或许更好的方式呢?

项目中的所有其他发行版都通过非公共CPAN :: Mini镜像+ CPAN :: Mini :: Inject进行部署/分发.

perl cpan

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

哪个cpan模块最适合阅读和学习?

我最近查看了DBIx :: Class的源代码,发现我不理解一件事(虽然我在尝试时掌握了几个技巧).

所以我的问题是:对于想要学习的人,以及以什么顺序阅读哪些CPAN模块?

perl cpan

10
推荐指数
2
解决办法
2376
查看次数

如何开始为C++库编写Perl绑定?

我想为C++库编写Perl绑定,以便可以从Perl使用该库.我该如何开始这样做?我以前为CPAN编写了纯Perl模块.

c++ perl cpan

10
推荐指数
2
解决办法
2237
查看次数

我应该如何使用Perl模块分发数据文件?

我已经开始了module-starter(带--builder=Module::Build).我想用来SQL::Library将我的SQL收集到一个.ini文件中......但是为了在运行时找到该文件,我需要知道它的确切路径.如何在运行时获取模块"数据目录"的路径?

到目前为止,我一直在使用FindBin(比如"$FindBin::Bin/../../path/to/module/datafiles/foo.ini",但我发现它不是很强大(例如,当PATH中两个不同的目录中有两个具有相同名称的程序时,它似乎会中断).

perl cpan

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

通过cpan安装perl模块Net :: SSLeay

我试图通过cpan安装Net :: SSLeay来安装Email :: Send :: SMTP :: TLS但是我收到以下错误.

cpan[5]> install Net::SSLeay
Running install for module 'Net::SSLeay'
Running make for M/MI/MIKEM/Net-SSLeay-1.49.tar.gz
  Has already been unwrapped into directory /home/ubuntu/.cpan/build/Net-SSLeay-1.49-VDZ57t
Could not make: Unknown error
Running make test
  Can't test without successful make
Running make install
  Make had returned bad status, install seems impossible
Run Code Online (Sandbox Code Playgroud)

email perl openssl cpan sendmail

10
推荐指数
4
解决办法
4万
查看次数

为Perl模块提供信誉

我为我的公司编写了一个脚本,我正在使用从CPAN获得的一些库.我的经理希望我整合并删除额外的库 - 这有点好笑,因为我将它们包含在脚本中.

几点说明:

  • 我在此服务器上没有root访问权限,也无法请求访问权限
  • 要使用没有root的CPAN模块,我将它们安装到我的用户目录中
  • 为了让其他用户能够运行我的脚本,我通常会在我的脚本目录和脚本中包含一个名为"libs"的文件夹:use 'libs';use我的CPAN模块之前的顶部.

我现在唯一的解决方案就是将perl模块的内容直接放在perl脚本中.不过,我想给信贷,这是由于,也陷入困境无法获得包括开源代码的w/o适当的信贷,以它的作者和组织.

因此,我应该怎么做呢?我并不是想逃避任何事情......我真的想以正确的方式去做.

所有这三个模块都说"以与Perl本身相同的条件获得许可",但我觉得它应该不那么容易.

我也想探索其他任何想法!

这些模块是:

  • 文字::表
  • 文字::定位仪
  • 期限:: ANSIColor

perl cpan gnu perl-module

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

在Perl中,"make test"更加冗长

当我make test使用CPAN模块具有的常规测试工具运行时,它将只输出一个简短的摘要(如果一切顺利).

t/000_basic.t .......................... ok   
t/001_db_handle.t ...................... ok     
t/002_dr_handle.t ...................... ok     
t/003_db_can_connect.t ................. ok   
... snip ...
All tests successful.
Files=30, Tests=606,  2 wallclock secs 
Result: PASS
Run Code Online (Sandbox Code Playgroud)

如果我单独运行测试,它们会输出更详细的信息.

1..7
ok 1 - use DBIx::ProcedureCall::PostgreSQL;
ok 2 - simple call to current_time
ok 3 - call to power() with positional parameters
ok 4 - call to power() using the run() interface
ok 5 - call to setseed with a named parameter
ok 6 - call a table function
ok …
Run Code Online (Sandbox Code Playgroud)

perl automated-tests cpan

9
推荐指数
2
解决办法
4089
查看次数

标签 统计

cpan ×10

perl ×10

automated-tests ×1

c++ ×1

checksum ×1

email ×1

gnu ×1

hashcode ×1

openssl ×1

perl-module ×1

sendmail ×1

string ×1

sudo ×1