Tag: perl

如何让我的Perl脚本像Windows上的普通程序一样行事?

我希望我的Perl脚本像其他可执行文件(* .exe文件)一样运行。 当我双击myscript.pl我希望它执行,而不是在文本编辑器中打开。 我想运行myscript.pl而不是perl myscript.pl 。 我真的想运行myscript而不是myscript.pl 。 我想运行program | myscript program | myscript而不是program | perl myscript.pl program | perl myscript.pl 。 我想能够通过拖放运行我的脚本。 你必须在Windows上进行一些改变才能使所有这些工作都能正常工作。 用户通常偶然发现不能一次一个工作的事情; 让他们感到困惑,他们是否犯了一个错误,Perl中存在一个错误,Windows中有一个错误,或者他们想要的行为是不可能的。 这个问题的目的是提供一个单一的参考点,使一切工作的前台; 最好在这些问题发生之前。 相关问题: 如何让Perl脚本识别Win32 cmd控制台中的参数? 在没有扩展名的窗口上运行perl脚本 Perl从命令行问题执行 我如何在Windows上读取pipe道input? Windows上的Perl,文件关联和I / Oredirect 如何创build拖放草莓Perl程序?

我如何编译我的Perl脚本,以便可以在没有安装perl的系统上执行?

我有一个.pl文件,我想在任何系统中执行该文件,即使没有安装perl 。 我怎么能实现它? 有谁能让我知道一些很好的例子吗?

我如何手动插入string转义的Perlstring?

在Perl中,假设我有一个string像'hello\tworld\n' ,而我想要的是: 'hello world ' 也就是“hello”,然后是一个字面标签字符,然后是“world”,然后是一个字面换行符。 或者等价地, "hello\tworld\n" (注意双引号)。 换句话说,是否有一个函数用一个带有转义序列的string,并返回一个等价的string与所有的转义序列插值? 我不想插入variables或其他任何东西,只是转义序列像\x ,其中x是一个字母。

库文件和模块有什么区别?

Perl中的库文件和模块有什么区别?

在C ++中省略return语句

我只是从我用Strawberry Perl获得的Windows版本g ++中发现了一些奇怪的行为。 它使我可以省略一个返回声明。 我有一个成员函数返回一个由两个指针组成的结构,叫做boundTag : struct boundTag Box::getBound(int side) { struct boundTag retBoundTag; retBoundTag.box = this; switch (side) { // set retBoundTag.bound based on value of "side" } } 这个函数给了我一些不好的输出,我发现它没有return语句。 我本来打算返回retBoundTag但忘了实际写回报语句。 一旦我添加return retBoundTag; 一切(曾经)都很好。 但是我testing了这个函数,并boundTag得到了正确的boundTag输出。 即使现在,当我删除返回语句,g ++编译它没有警告。 WTF? 它猜测返回retBoundTag ?

在Perl比较“eq”和“==”的string

我是(一个完整的Perl新手)做一个if语句中的string比较: 如果我这样做: if ($str1 == "taste" && $str2 == "waste") { } 我看到正确的结果(即如果条件匹配,它评估“then”块)。 但是我看到这些警告: 参数“品味”在数字eq(==)在行号x不是数字。 在行号x处,参数“waste”在数字eq(==)中不是数字。 但是,如果我这样做: if ($str1 eq "taste" && $str2 eq "waste") { } 即使if条件满足,它也不评估“then”块。 在这里, $str1是taste , $str2是waste 。 我应该如何解决这个问题?

正则expression式的可变长度lookbehind-assertion选项

在Python / PHP / JavaScript中是否有正则expression式的实现支持可变长度lookbehind-assertion? /(?<!foo.*)bar/ 我怎样才能写一个具有相同含义的正则expression式,但不使用lookbehind-assertion? 这种断言是否有可能在某一天实施? 我觉得事情好多了。 更新: (1)已经有支持变长lookbehind-assertion的正则expression式实现。 Python模块的正则expression式 (不是标准的,但额外的regex模块)支持这样的断言(并有许多其他很酷的function)。 >>> import regex >>> m = regex.search('(?<!foo.*)bar', 'f00bar') >>> print m.group() bar >>> m = regex.search('(?<!foo.*)bar', 'foobar') >>> print m None 对于我来说,有一些正则expression式是Perl无法做到的,而Python可以做到这一点,这真是一个非常大的惊喜。 也许,Perl的“增强的正则expression式”的实现呢? (感谢和+1对MRAB)。 (2)现代正则expression式中有一个很酷的function\K 这个符号意味着当你进行replace时(从我的观点来看,最有趣的断言使用情况就是replace),在\K之前find的所有字符都不能被改变。 s/unchanged-part\Kchanged-part/new-part/x 这几乎就像一个背后的断言,但当然不是那么灵活。 更多关于\K : Perl Regular Expression \ K Trick PCRE Regex Spotlight:\ K 据我所知,你不能在同一个正则expression式中使用\ K两次。 […]

Perl内存使用情况分析和泄漏检测?

我在Perl上编写了一个运行在Linux上的持久networking服务。 不幸的是,随着它的运行,其驻留堆栈大小(RSS)正在增长,并且缓慢而稳定地增长和增长。 尽pipe我尽了最大努力来清除所有不需要的散列键,并删除了所有对象的引用,否则这些引用会导致引用计数停留在原位并阻碍垃圾回收。 是否有任何好的工具来分析与Perl程序中的各种本地数据原语,受祝福的哈希引用对象等有关的内存使用情况? 你用什么来追踪内存泄漏? 我不习惯在Perldebugging器或任何各种交互式分析器中花费时间,所以我们将不胜感激。 🙂

我如何将命令行parameter passing给Perl程序?

我正在处理一个Perl脚本。 我如何将命令行parameter passing给它? 例: script.pl "string1" "string2"

如何解决Perl的语言环境设置警告?

当我运行perl ,我得到警告: perl:警告:设置区域设置失败。 perl:警告:请检查您的区域设置: LANGUAGE =(unset), LC_ALL =(未设定), LANG =“en_US.UTF-8” 支持并安装在您的系统上。 perl:警告:回落到标准语言环境(“C”)。 我该如何解决?