Questions tagged «perl»

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


6
如何安装一组Perl模块的特定版本?
我的任务是复制生产环境以创建许多测试/就座环境。 我需要做的一件事就是建立Perl,并使用多年来安装的所有模块(包括内部和外部模块)。我可以只使用CPAN.pm autobundle,但这将导致测试环境具有生产所具有的外部模块的更新版本。 获取和安装(很多)特定于版本的Perl模块的最简单/最佳方法是什么。
72 perl  version  module  cpan 

18
Bash脚本有什么用了吗?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我刚刚完成第二年的大学CS学习,所以我缺乏对“现实世界”的了解。我第一年学习Java,然后继续学习Java,第二年学习了C和简单的Bash脚本。今年夏天,我正在尝试学习Perl(上帝帮助我)。我过去有点涉猎Python。 我的问题是,既然我们拥有易读,可写的脚本语言,例如Python,Ruby,Perl等,为什么有人编写Bash脚本?有什么我想念的吗?我知道我的linux机器有perl和python。它们不够普及吗?在Bash中确实有比在其他hll中更容易做的事情吗?

8
如何在不区分大小写的情况下匹配字符串中的子字符串
我正在寻找Python中忽略大小写字符串的比较。 我尝试过: if line.find('mandy') >= 0: 但忽略案例没有成功。我需要在给定的文本文件中找到一组单词。我正在逐行读取文件。一行上的单词可以是mandy,Mandy,MANDY等(我不想使用toupper/tolower等)。 我正在寻找下面的Perl代码的Python等效项。 if ($line=~/^Mandy Pande:/i)
72 python  perl 

6
如何一致地逐行合并两个文件
我有两个文件(file1.txt和file2.txt),这些文件仅是示例。 如何合并两个文件,以创建文件-merge_files.txt作为示例3 我现在写的是ksh脚本,因此可以用ksh,awk,sed,perl一个内衬... etc进行合并 背景-为什么需要合并文件:我的目标是将OLD文件(存在于第一个字段中)重命名为NEW文件(存在于第二个字段中), 例子1 more file1.txt /etc/port1-192.9.200.1-255.555.255.0 /etc/port2-192.9.200.1-255.555.255.0 /etc/port3-192.9.200.1-255.555.255.0 /etc/port4-192.9.200.1-255.555.255.0 /etc/port5-192.9.200.1-255.555.255.0 . . . . 例子2 more file2.txt /etc/port1-192.90.2.1-255.555.0.0 /etc/port2-192.90.2.1-255.555.0.0 /etc/port3-192.90.2.1-255.555.0.0 /etc/port4-192.90.2.1-255.555.0.0 /etc/port5-192.90.2.1-255.555.0.0 . . . . 例子3 more merge_files.txt /etc/port1-192.9.200.1-255.555.255.0 /etc/port1-192.90.2.1-255.555.0.0 /etc/port2-192.9.200.1-255.555.255.0 /etc/port2-192.90.2.1-255.555.0.0 /etc/port3-192.9.200.1-255.555.255.0 /etc/port3-192.90.2.1-255.555.0.0 /etc/port4-192.9.200.1-255.555.255.0 /etc/port4-192.90.2.1-255.555.0.0 /etc/port5-192.9.200.1-255.555.255.0 /etc/port5-192.90.2.1-255.555.0.0 . . . . . example4(merge_files.txt结构) first field …
71 linux  perl  sed  awk  ksh 


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

9
在Perl中快速到达YYYY-mm-dd HH:MM:SS
在编写Perl脚本时,我经常发现需要获取以字符串格式表示的当前时间YYYY-mm-dd HH:MM:SS(例如2009-11-29 14:28:29)。 在执行此操作时,我发现自己走的路很繁琐: man perlfunc /localtime搜索本地时间-重复五次(/+ \n)以到达手册页的相关部分 将字符串($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);从手册页复制到我的脚本中。 试试看 my $now = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year, $mon, $mday, $hour, $min, $sec); 记住第一点:必须将$ year加1900才能获得当前年份。 试试看 my $now = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year+1900, $mon, $mday, $hour, $min, $sec); 请记住,第2点:必须将$ mon加1才能获得当前月份。 试试看 my $now = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year+1900, $mon+1, $mday, $hour, $min, …




7
覆盖模块中定义但在运行时阶段使用的函数?
让我们做一个非常简单的事情, # Foo.pm package Foo { my $baz = bar(); sub bar { 42 }; ## Overwrite this print $baz; ## Before this is executed } 无论如何,我可以从test.pl运行代码中更改$baz设置并导致Foo.pm在屏幕上打印其他内容吗? # maybe something here. use Foo; # maybe something here 在编译器阶段是否可以强制上述内容打印7?
20 perl  compilation 

2
为什么有些用户在Perl中引用类名?
看一下Type::Tiny,我看到Type::Tiny->new在的文档中引用了对的调用中的类名, my $NUM = "Type::Tiny"->new( name => "Number", constraint => sub { looks_like_number($_) }, message => sub { "$_ ain't a number" }, ); 为什么是这样?这仅仅是样式吗?这种做法是否会对性能产生影响?


1
如何在Raku中模拟wc -l
在perl 5中,可以wc -l使用oneliner 进行仿真: perl -lnE 'END {say $.}' test.txt 如何在Raku上实现此功能 如果您尝试实现此目的: raku -e 'say "test.txt".IO.open.lines.elems' 事实证明它很慢并且占用大量内存 复制信息: $ wget http://eforexcel.com/wp/wp-content/uploads/2017/07/1500000%20Sales%20Records.zip $ unzip "1500000 Sales Records.zip" $ mv "1500000 Sales Records.csv" part.txt $ for i in `seq 1 10`; do cat part.txt >> test.txt ; done $ du -sh test.txt …
9 perl  raku 

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.