Questions tagged «perl»

Perl是一种过程性,高级,通用,动态编程语言,以其对正则表达式和字符串解析功能的本机支持而闻名。通常,请使用此标签来回答有关Perl的问题。对于与新的(但相关的)语言Raku(以前称为“ Perl 6”)有关的内容,请使用raku标记。对于其他语言的Perl样式正则表达式,请使用regex标记;如果基于PCRE库,则使用pcre标记。


7
如何在保留原始字符串的同时对字符串执行Perl替换?
在Perl中,有什么好方法可以使用正则表达式对字符串进行替换并将值存储在不同的变量中,而无需更改原始值? 我通常只是将字符串复制到新变量,然后将其绑定到s///对新字符串进行替换的正则表达式,但是我想知道是否有更好的方法来做到这一点? $newstring = $oldstring; $newstring =~ s/foo/bar/g;
179 regex  perl  replace 


9
寻求澄清有关弱类型语言的明显矛盾
我想我了解强类型,但是每次我寻找弱类型的示例时,我最终都会找到简单地自动强制转换类型的编程语言示例。 例如,在这篇名为“ 打字:强vs.弱”,“静态vs.动态 ”的文章中,Python是强类型的,因为如果尝试执行以下操作,则会得到异常: 蟒蛇 1 + "1" Traceback (most recent call last): File "", line 1, in ? TypeError: unsupported operand type(s) for +: 'int' and 'str' 但是,在Java和C#中这种事情是可能的,因此我们不认为它们只是弱类型的。 爪哇 int a = 10; String b = "b"; String result = a + b; System.out.println(result); C# int a = 10; …
178 c#  java  python  perl  weakly-typed 


22
如何获取正在执行的Perl脚本的完整路径?
我有Perl脚本,需要在执行期间确定脚本的完整路径和文件名。我发现,这取决于你如何调用脚本$0而异,有时包含fullpath+filename有时刚filename。因为工作目录也可能变化,所以我想不出一种可靠地获取fullpath+filename脚本的方法。 任何人都有解决方案吗?
168 perl  path  location 


22
如果换行符是文件中的最后一个字符,该如何删除?
我有一些文件要删除最后一个换行符(如果它是文件中的最后一个字符)。 od -c告诉我,我运行的命令确实以尾随新行写入文件: 0013600 n t > \n 我用sed尝试了一些技巧,但我能想到的最好的方法不是: sed -e '$s/\(.*\)\n$/\1/' abc 任何想法如何做到这一点?
162 linux  perl  shell  awk  sed 


20
而(1)for(;;)是否存在速度差异?
长版... 一位同事在看到我while (1)在for (;;)更快的Perl脚本中使用后断言。我认为他们应该是一样的,希望解释器可以优化任何差异。我设置了一个脚本,该脚本将为循环迭代和相同数量的while循环运行1,000,000,000,并记录它们之间的时间。我发现没有明显的区别。我的同事说,一位教授告诉他while (1)正在进行比较1 == 1,for (;;)而没有进行比较。我们使用C ++的迭代次数进行了100倍的重复相同的测试,并且差异可以忽略不计。但是,这是一个图形示例,说明了与脚本语言相比,编译后的代码可以提高多少速度。 精简版... 如果您需要无限循环来突破,有什么理由while (1)比a for (;;)优先? 注意:如果问题尚不清楚。这纯粹是几个朋友之间有趣的学术讨论。我知道这不是所有程序员都应该苦恼的超级重要概念。感谢您提供的所有出色答案,我(而且我敢肯定其他人)已经从这次讨论中学到了一些东西。 更新:上述同事在下面进行了回应。 以防万一它被埋在这里。 它来自AMD组装程序员。他说C程序员(人)没有意识到他们的代码效率低下。他今天说,但是,gcc编译器非常好,使像他这样的人破产了。他举例称,并告诉我关于while 1VS for(;;)。我现在已经习惯使用它了,但是由于它们已经过优化,因此gcc尤其是解释器这两天都将执行相同的操作(处理器跳转)。

30
Perl的隐藏功能?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它当前不接受新的答案或互动。 您实际上已能够使用Perl中哪些真正有用但深奥的语言功能来完成有用的工作? 指导原则: 尝试将答案限制在Perl核心而非CPAN上 请举一个例子和简短描述 在其他语言的“隐藏功能”中也可以找到“隐藏功能”: (这些都是Corion的回答) C 达夫的装置 便携性和标准性 C# 空格分隔列表和字符串的引号 别名空间 爪哇 静电诱剂 的JavaScript 职能是一等公民 块范围和关闭 通过变量间接调用方法和访问器 红宝石 通过代码定义方法 的PHP 无处不在的在线文档 魔术方法 符号参考 蟒蛇 一线交换 能够用自己的功能替换甚至核心功能 其他隐藏功能: 运营商: 布尔准算子 触发器运算符 也用于列表构建 在++和一元-运营商处理字符串 重复运算符 飞船操作员 || 运算符(和/或运算符)从一组选项中进行选择 钻石操作员 m//操作员的特殊情况 代字号-代字号“运算符” 引用构造: qw运算符 字母可用作类似q {}的构造中的引号分隔符 报价机制 语法和名称: 标记后可以有空格 您可以给subs数字名称加上符号引用 法律尾部逗号 …


8
Perl的“祝福”到底是做什么的?
我了解一个人在类的“ new”方法中使用了Perl中的“ bless”关键字: sub new { my $self = bless { }; return $self; } 但是,“祝福”到底对那个哈希引用做了什么?
141 perl  bless 


10
重命名文件和目录(添加前缀)
我想在所有文件夹和目录上添加前缀。 例: 我有 Hi.jpg 1.txt folder/ this.file_is.here.png another_folder.ok/ 我想添加前缀“ PRE_” PRE_Hi.jpg PRE_1.txt PRE_folder/ PRE_this.file_is.here.png PRE_another_folder.ok/ 问候,
137 linux  perl  shell 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.