Tag: perl

我怎样才能快速汇总一个文件中的所有数字?

我有一个包含几千个数字的文件,每个数字都在它自己的行上: 34 42 11 6 2 99 … 我正在寻找一个脚本,将打印文件中的所有数字的总和。 我有一个解决scheme,但效率不高。 (这需要几分钟的时间。)我正在寻找一个更有效的解决scheme。 有什么build议么?

如何在保留原始string的情况下对string执行Perlreplace?

在Perl中,使用正则expression式对string执行replace并将值存储在其他variables中而不更改原始值的好方法是什么? 我通常只是将string复制到一个新的variables,然后绑定到s///正则expression式replace新的string,但我想知道是否有更好的方法来做到这一点? $newstring = $oldstring; $newstring =~ s/foo/bar/g;

如何在shell脚本中从postgresql中提取pg_backend_pid并将其传递给另一个进程?

我需要在命令行(或脚本)上运行bin/psql ,并将其pg_backend_pid输出,以便将pg_backend_pid作为命令行parameter passing给另一个进程(由root运行)。 对我来说问题是,其他进程需要在获得pid后运行。 psql (具有相同的pid会话)然后在另一个进程启动后运行查询。 诀窍是Psql需要等到其他进程获得pg_backend_pid并且它必须保持相同的会话。 这可以通过shell脚本或Perl完成吗?

从Bash中另一个更大的文本文件中find文本文件的行的最快方法

我有两个文件, file1.txt和file2.txt 。 file1.txt约有14K行, file2.txt约有20亿。 file1.txt每行有一个字段f1 ,而file2.txt有3个字段,从f1到f3 ,由| 。 我想从file2.txt中find所有行,其中file1.txt f2与file2.txt f2匹配(或者如果我们不想花费额外的时间分割file2.txt的值,则file2.txt )。 file1.txt(约14K行, 未sorting ): foo1 foo2 … bar1 bar2 … file2.txt(约20亿行, 未sorting ): date1|foo1|number1 date2|foo2|number2 date3|foo3|number3 … date1|bar1|number1 date2|bar2|number2 date3|bar3|number3 预期产出: date1|foo1|number1 date2|foo2|number2 date1|bar1|number1 date2|bar2|number2 … 这是我已经尝试过,似乎需要几个小时才能运行: fgrep -F -f file1.txt file2.txt > file.matched 我想知道是否有一个更好,更快的方式来执行这个操作与普通的Unix命令或一个小脚本。

在Perl中制作数据结构的深层副本的最佳方法是什么?

给定一个数据结构(如散列哈希),什么是干净/推荐的方式来做一个深层复制立即使用? 假设合理的情况下,数据不是特别大,没有复杂的循环存在,可读性/可维护性等。 比速度更重要。 我知道我可以使用Storable , Clone ,Clone :: More, Clone :: Fast , Data :: Dumper等。目前的最佳做法是什么?

在Perl中,是否有内置的方式来比较两个数组是否相等?

我有两个string数组,我想比较它们是否相等: my @array1 = ("part1", "part2", "part3", "part4"); my @array2 = ("part1", "PART2", "part3", "part4"); 有一种内置的方法来比较数组,比如标量吗? 我试过了: if (@array1 == @array2) {…} 但它只是在标量上下文中评估每个数组,因此比较每个数组的长度。 我可以推出我自己的function来做,但似乎是这样一个低级别的操作,应该有一个内置的方式来做到这一点。 在那儿? 编辑:可悲的是,我没有访问5.10 +或可选组件。

如何在使用包pipe理器时pipe理Perl模块?

这个最近的问题让我思考。 在我尝试的大多数Linux发行版中,通过包pipe理器可以使用一些Perl模块。 其他人当然不是。 有一段时间我会用我的包pipe理器,每当我需要安装一些CPAN模块,以确定包是否可用,并安装它时。 显而易见的好处是,只要新版本的软件包可用,就可以更新模块。 但是,如果模块不能以预封装的forms提供,并且该模块存在依赖关系,则会遇到麻烦。 每当cpan shell询问是否应该依赖依赖时,打包你的包pipe理器可能会相当累人。 另一个缺点是预封装模块的版本。 如果您正在运行Debian或Ubuntu,您很快就会发现,您将无法生活在stream血的边缘,就像许多CPAN模块作者似乎所做的那样。 Linux上的其他Perl人员如何处理这个问题? 你只是忽略你的软件包pipe理者所提供的? 是否有任何工具可以使(例如)更好的队友? 或者你只是不通过cpanshell安装任何东西?

Perl 5中存在哪些伪操作符?

我目前正在logging所有的Perl 5的操作符(请参阅perlopref GitHub项目),我也决定包含Perl 5的伪操作符。 对我来说,Perl中的伪操作符是任何看起来像操作符的东西,但实际上不止一个操作符或其他一些语法。 我已经logging了我已经熟悉的四个: ()=运算符的个数 =()= goatse / countof操作符 标量上下文运算符 }{爱斯基摩人接吻操作员 这些伪操作符还有其他什么名字,你知道我错过的伪操作吗? =head1 Pseudo-operators There are idioms in Perl 5 that appear to be operators, but are really a combination of several operators or pieces of syntax. These pseudo-operators have the precedence of the constituent parts. =head2 ()= X =head3 Description This pseudo-operator […]

我如何configurationApache 2来运行Perl CGI脚本?

我想configuration运行在Kubuntu上的Apache 2来执行Perl CGI脚本。 我尝试了一些通过Googlesearch发现的步骤,但似乎没有任何效果。 什么是实现这一目标的正确方法?

如何在我的Perl脚本中包含来自另一个文件的函数?

这似乎是一个非常简单的问题,但不知何故,我的Google-Fu失败了。 在Perl中包含其他文件的函数的语法是什么? 我正在寻找像C的#include "blah.h" 我看到了使用Perl模块的选项,但似乎需要对当前代码进行不重要的重写。