这是我的(代码高尔夫)挑战:取两个字节数组并确定第二个数组是否是第一个数组的子字符串.如果是,则输出第一个数组中第二个数组内容出现的索引.如果在第一个数组中没有找到第二个数组,则输出-1.
示例输入:{63,101,245,215,0} {245,215}
预期产出:2
示例输入2:{24,55,74,3,1} {24,56,74}
预期输出2:-1
编辑:有人指出bool是多余的,所以你所要做的就是返回一个表示值索引的int,如果找不到则返回-1.
我不能%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_HOME并LD_LIBRARY_PATH通过unix shell(export LD_LIBRARY_PATH=...)它可以正常工作.有什么建议?
有Test :: Simple,Test :: More,Test :: Builder(Test :: Simple发布的所有部分),Test :: Class,Test :: Unit,Test :: Moose ......
我正在使用Moose开始一个新项目 - 我应该使用哪个模块来编写我的测试?
Python 3.0正处于测试阶段,不久将发布最终版本.显然,一般采用它需要一些重要的时间,并最终取代2.x.
我正在编写关于Python编程的某些方面的教程.我想知道我是否应该在Python 2.x或3.0中执行此操作?(不是差别很大)
2.x教程现在可能更有用,但是开始制作3.0教程会很不错.
有人有想法吗?
(当然我可以做到这两点,但我更愿意做一个或另一个)
我是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)
我想知道这一点,以便知道$ _的使用是否更有效,因为它是放在寄存器中,因为它是常用或不常用的.我已经编写了一些代码,我正在尝试清理它,并且我发现我使用的第一个循环比第二个循环更频繁.
我有类似于以下的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编写的大型项目.在IBM MakeMaker的教程非常有帮助,到目前为止,但我不明白如何将所有模块链接到主程序.在我的项目的根,我有MANIFEST,Makefile.PL,README,一个bin目录和lib目录.在我的bin目录中,我有我的主脚本(Main.pl).在lib目录中,我有我的每一个模块,分成它们各自的目录(即Utils::Util1和Utils::Utils2在utils目录等).在每个模块目录中,还有一个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脚本,它运行许多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程序中使用谷歌的API,以便返回搜索词的搜索结果数量吗?
每当在google上进行搜索时,在最右边,它会找到一些结果并花费时间.我想获得这些信息.
这段代码怎么样?
#!/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) perl ×8
api ×1
bytearray ×1
code-golf ×1
dbd ×1
dbi ×1
env ×1
file ×1
hash ×1
line ×1
loops ×1
makemaker ×1
obfuscation ×1
oracle ×1
performance ×1
project ×1
python ×1
python-2.x ×1
python-3.x ×1
search ×1
structure ×1
testing ×1
unit-testing ×1
variables ×1