Tag: perl

如何使用Perl的DBI防止SQL注入攻击?

有一个函数,我可以在Perl中使用,以消毒input之前将其放入MySQL数据库? 我不知道正则expression式,所以在我做自己的函数之前,我想知道是否已经有了一个。

什么是Python迭代器的Perl版本?

我正在学习Perl并享受它。 我通常用Python做我的工作,但老板想要Perl。 Python和Perl中的大部分概念很好匹配:Python dictionary = Perl hash; Python元组= Perl列表; Python list = Perl数组; 等等 问题:是否有Perl版本的Pythonforms的迭代器 /生成器? 一个例子:一个经典的Python方法来生成斐波纳契数字是: #!/usr/bin/python def fibonacci(mag): a, b = 0, 1 while a<=10**mag: yield a a, b = b, a+b for number in fibonacci(15): print "%17d" % number 迭代器也是有用的,如果你想根据需要生成一个更大的列表子部分。 Perl'lists'看起来更加静态 – 更像是一个Python元组。 在Perl中,可以foreach是dynamic的还是只基于静态列表? Iterator的Pythonforms是一种我已经习惯的forms,我没有发现它在Perl中logging…除了写入循环或recursion或产生一个巨大的静态列表,我如何(为前)写在Perl中的斐波那契子程序? 有没有我失踪的Perl yield ? 具体来说 – 我怎么写这个: #!/usr/bin/perl […]

grep -P不再工作,我怎么能重写我的search

它看起来像OSX的新版本不再支持grep -P,并因此使我的一些脚本停止工作。 var1=`grep -o -P '(?<=<st:italic>).*(?=</italic>)' file.txt` 我需要捕获到一个variables的grep,我需要使用零宽度断言。 以及\ K var2=`grep -P -o '(property:)\K.*\d+(?=end)' file.txt` 任何替代品将不胜感激。

我怎样才能看到一个Perl哈希已经有一个特定的关键?

我有一个Perl脚本来计算文本文件中各种string的出现次数。 我希望能够检查某个string是否还不是散列中的关键字。 有没有更好的方法来完成这一切? 这是我在做什么: foreach $line (@lines){ if(($line =~ m|my regex|) ) { $string = $1; if ($string is not a key in %strings) # "strings" is an associative array { $strings{$string} = 1; } else { $n = ($strings{$string}); $strings{$string} = $n +1; } } }

“地图”是一个循环?

在回答这个问题的时候 ,我意识到我不确定Perl的map能否被认为是一个循环呢? 一方面,它像一个循环(O(n))工作,可以很容易地被一个等价的循环重写,并且符合通用定义=“连续重复的指令序列”。 另一方面, map通常不在Perl的控制结构中列出,其中循环是其子集。 例如http://en.wikipedia.org/wiki/Perl_control_structures#Loops 所以,我正在寻找的是一个正确的理由相信一方与另一方。 到目前为止,前者(这是一个循环)对我来说听起来更加令人信服,但是由于我从来没有看到Perl循环列表中提到的“映射”,所以我感到困扰。

我应该先学习Perl 5 OO还是Moose?

我还是比较新的Perl编程,但我知道Perl 5 OO基本上是如何工作的。 不过,我从来没有用Perl 5 OO创build任何项目,所以我很肯定我会遇到很多陷阱。 最近我发现了关于Moose模块的宣传。 我查阅了CPAN上的一些文档,发现它非常有趣,帮助我成为开发者。 此外,它似乎非常稳定和可靠。 我是否应该更加努力地使用基本的Perl 5 OO语法,直到我对它非常熟悉(要知道阶段背后发生了什么),还是您认为我应该继续使用Moose直接开始开发应用程序? 还是应该给老鼠一个尝试? 任何想法和经验,在此表示赞赏。 提前致谢!

如何在严格的编译指示下将variables设置为NULL?

use strict; my $var = NULL; Bareword "NULL" not allowed while "strict subs" in use会产生Bareword "NULL" not allowed while "strict subs" in use的Bareword "NULL" not allowed while "strict subs" in use的错误

如何包含位于不同目录中的Perl模块?

如何包含位于不同目录中的Perl模块? 它需要是包含它的模块的相对path。 我试过了 push ( @INC,"directory_path/more_path"); 也 push ( @INC,"directory_path\\more_path");

“不适合ioctl的设备”

我有一个运行在AIX框中的Perl脚本。 该脚本试图从某个目录打开一个文件,它无法读取文件,因为文件没有读取权限,但我得到一个不同的错误,说inappropriate ioctl for device 。 不应该说像no read permissions for file或类似的东西? 这个inappropriate ioctl for device信息inappropriate ioctl for device是什么意思? 我该如何解决? 编辑:这是我当我strace时发现的。 打开(“/ local / logs / xxx / xxxxServer.log”,O_WRONLY | O_CREAT | O_APPEND | O_LARGEFILE, 0666)= 4 _llseek(4,0,[77146],SEEK_END)= 0 ioctl(4,SNDCTL_TMR_TIMEBASE或TCGETS,0xbffc14f8)= -1 ENOTTY (不适合设备的ioctl)

python是否有像perl一样的“严格使用”和“使用警告”?

我正在学习Perl和Python … …在同一时间,不是我的devise,但它必须完成。 题: 在我使用的Perl脚本(见下文)在我的TXT的头部。 #!/usr/bin/env perl use strict; use warnings; 有没有什么我应该为我的Python脚本日常工作?