小编Bra*_*ert的帖子

数组搜索代码挑战

这是我的(代码高尔夫)挑战:取两个字节数组并确定第二个数组是否是第一个数组的子字符串.如果是,则输出第一个数组中第二个数组内容出现的索引.如果在第一个数组中没有找到第二个数组,则输出-1.

示例输入:{63,101,245,215,0} {245,215}

预期产出:2

示例输入2:{24,55,74,3,1} {24,56,74}

预期输出2:-1

编辑:有人指出bool是多余的,所以你所要做的就是返回一个表示值索引的int,如果找不到则返回-1.

search code-golf bytearray rosetta-stone

10
推荐指数
5
解决办法
2404
查看次数

%ENV不起作用,我不能使用共享库

我不能%ENV在我的Perl脚本上使用var来使用Oracle库.

BEGIN {
    $ORACLE_HOME = "/usr/lib/oracle/10.2.0.3/client64";
    $LD_LIBRARY_PATH = "$ORACLE_HOME/lib";
    $ORACLE_SID="prod";
    $ENV{ORACLE_SID}=$ORACLE_SID;
    $ENV{ORACLE_HOME}= $ORACLE_HOME;
    $ENV{LD_LIBRARY_PATH}= $LD_LIBRARY_PATH;
};
Run Code Online (Sandbox Code Playgroud)

如果我打印$ENV{'ORACLE_HOME'},$ENV{'LD_LIBRARY_PATH'}一切似乎没问题但是,当我运行我的脚本时,我有错误:

install_driver(Oracle)失败:无法为模块DBD加载'/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so':: Oracle:libclntsh.so.10.1:无法打开共享对象文件:否这样的文件或目录位于/usr/lib64/perl5/DynaLoader.pm第200行.(eval 3)第3行编译在(eval 3)第3行的require中失败.也许在预期的地方没有安装所需的共享库或dll在persistence.perl第22行

在网上搜索我发现在Perl上设置env变量的正确方法是使用%ENVhash.

导出ORACLE_HOMELD_LIBRARY_PATH通过unix shell(export LD_LIBRARY_PATH=...)它可以正常工作.有什么建议?

oracle perl env dbi dbd

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

我应该使用哪个Perl测试模块?

Test :: Simple,Test :: More,Test :: Builder(Test :: Simple发布的所有部分),Test :: Class,Test :: Unit,Test :: Moose ......

我正在使用Moose开始一个新项目 - 我应该使用哪个模块来编写我的测试?

testing perl unit-testing

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

Python教程 - 我应该使用2.x还是3.0?

Python 3.0正处于测试阶段,不久将发布最终版本.显然,一般采用它需要一些重要的时间,并最终取代2.x.

我正在编写关于Python编程的某些方面的教程.我想知道我是否应该在Python 2.x或3.0中执行此操作?(不是差别很大)

2.x教程现在可能更有用,但是开始制作3.0教程会很不错.

有人有想法吗?

(当然我可以做到这两点,但我更愿意做一个或另一个)

python python-2.x python-3.x

8
推荐指数
2
解决办法
3320
查看次数

在Perl的foreach中,$ _比命名变量更有效吗?

我是Perl的新手,我想知道以下哪个循环更有效:

my @numbers = (1,3,5,7,9);
foreach my $current (@numbers){
    print "$current\n";
}
Run Code Online (Sandbox Code Playgroud)

要么

my @numbers = (1,3,5,7,9);
foreach (@numbers){
    print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)

我想知道这一点,以便知道$ _的使用是否更有效,因为它是放在寄存器中,因为它是常用或不常用的.我已经编写了一些代码,我正在尝试清理它,并且我发现我使用的第一个循环比第二个循环更频繁.

variables perl performance loops

8
推荐指数
4
解决办法
1524
查看次数

在Perl中,未初始化的哈希键是否具有默认值零?

我有类似于以下的Perl代码:

# -- start --

my $res;

# run query to fetch IPv6 resources
while( my $row = $org_ip6_res->fetchrow_arrayref )
{
    if( $row->[4] =~ /PA/ ) {
        $res->{ipv6}{pa}{$row->[2]}++;
    } elsif( $row->[4] eq 'PI' ) {
        $res->{ipv6}{pi}{$row->[2]}++;
    }
}

# -- stop --
Run Code Online (Sandbox Code Playgroud)

$res迭代查询结果之前没有设置过,但代码运行得很好.

当我在每个值之前放置print语句时,在两种情况下都会出现空白,但是如果在应用了增量之后出现了print语句,那么取决于组织拥有多少IPv6资源,我得到的值> = 1.

我的问题是,我是否认为这意味着Perl中未初始化的哈希键自动具有零值?

很抱歉,如果它是一个新手问题,但我只是不熟悉这样的结构,即$hashref->{foo}->{bar}++ 尚未明确指定值$hashref->{foo}->{bar}.提前致谢!

perl hash default-value

8
推荐指数
2
解决办法
8695
查看次数

如何开始新的Perl模块分发?

我正在尝试建立一个用Perl编写的大型项目.在IBM MakeMaker的教程非常有帮助,到目前为止,但我不明白如何将所有模块链接到主程序.在我的项目的根,我有MANIFEST,Makefile.PL,README,一个bin目录和lib目录.在我的bin目录中,我有我的主脚本(Main.pl).在lib目录中,我有我的每一个模块,分成它们各自的目录(即Utils::Util1Utils::Utils2utils目录等).在每个模块目录中,还有一个t包含测试的目录

我的MANIFEST文件包含以下内容:

bin/Main.pl
lib/Utils/Util1.pm
lib/Utils/Util2.pm
lib/Utils/t/Utils1.t
lib/Utils/t/Utils2.t
Makefile.PL
MANIFEST
README
Run Code Online (Sandbox Code Playgroud)

Makefile.PL 如下:

use ExtUtils::MakeMaker;
WriteMakefile(
    'NAME'=>'Foo',
    'VERSION_FROM'=>'bin/Main.pl',
    'PREREQ_PM'=>{
    "XML::Simple"=> 2.18}, #The libraries that we need and their
                   #minimum version numbers
    'EXE_FILES' =>[("bin/Main.pl")]
);
Run Code Online (Sandbox Code Playgroud)

在我制作和运行之后,程序崩溃,抱怨它找不到Utils::Util1,当我跑'时make test,它说no tests defined.有人可以提出任何建议吗?我从未在perl中完成过这样的大型项目,我需要添加更多模块

perl structure project makemaker

8
推荐指数
3
解决办法
3139
查看次数

从Perl中的大文件中读取特定行

有没有快速和内存有效的方法来读取大文件的特定行,而无需将其加载到内存?

我编写了一个perl脚本,它运行许多forks,我希望他们从文件中读取特定的行.

目前我正在使用外部命令:

sub getFileLine {
    my ( $filePath, $lineWanted ) = @_;
    $SIG{PIPE} = '_IGNORE_';
    open( my $fh, '-|:utf8', "tail -q -n +$lineWanted \"$filePath\" | head -n 1" );
    my $line = <$fh>;
    close $fh;
    chomp( $line );
    return $line;
}
Run Code Online (Sandbox Code Playgroud)

它的速度很快而且很有效 - 但也许有更多的"Perl-ish"方式,就像这个一样快速和内存效率?

如您所知,在Perl中创建fork进程会复制主进程内存 - 因此,如果主进程使用10MB,则fork将使用至少那么多.

我的目标是保持fork进程(所以主要进程直到运行forks)内存使用尽可能低.这就是为什么我不想将整个文件加载到内存中.

perl file line

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

从perl程序中获取谷歌的结果数量

我可以在我的Perl程序中使用谷歌的API,以便返回搜索词的搜索结果数量吗?

每当在google上进行搜索时,在最右边,它会找到一些结果并花费时间.我想获得这些信息.

api perl

7
推荐指数
2
解决办法
1406
查看次数

这个混淆的Perl代码如何工作?

这段代码怎么样?

#!/usr/bin/perl

$i=4;$|=@f=map{("!"x$i++)."K$_^\x{0e}"}
"BQI!\\","BQI\\","BQI","BQ","B","";push
@f,reverse@f[1..5];@f=map{join"",undef,
map{chr(ord()-1)}split""}@f;{;$f=shift@
f;print$f;push@f,$f;select undef,undef,
undef,.25;redo;last;exit;print or die;}
Run Code Online (Sandbox Code Playgroud)

obfuscation perl

7
推荐指数
3
解决办法
2952
查看次数