Tag: perl

我怎样才能安装一个CPAN模块到本地目录?

我正在使用托pipe的Linux机器,因此我没有权限写入/usr/lib目录。 当我尝试通过以下方式安装CPAN模块时: perl Makefile.PL make test make install 该模块被提取到一个blib/lib/文件夹。 我一直use blib/lib/ModuleName但它仍然是编译器说模块无法find。 我已经尝试将.pm文件复制到本地目录,并保持require ModuleName但仍然给我一些错误。 我怎样才能安装一个模块到其他目录并使用它?

我和Perl在Perl中有什么区别?

我看到他们都在这个脚本中使用,我正在尝试debugging,文献不清楚。 有人能为我揭穿这个吗?

在Perl中快速到达YYYY-MM-DD HH:MM:SS

在编写Perl脚本时,我经常会发现需要获取以stringforms表示的当前时间,格式为YYYY-mm-dd HH:MM:SS (说2009-11-29 14:28:29 )。 在这样做的时候,我发现自己采取了这个相当麻烦的道路: man perlfunc /localtimesearch本地时间 – 重复五次( / + \n )到达联机帮助页的相关部分 复制string($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); 从manpage到我的脚本。 尝试使用my $now = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year, $mon, $mday, $hour, $min, $sec); 记住陷阱#1:必须加1900年到$年来获得当年。 尝试使用my $now = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year+1900, $mon, $mday, $hour, $min, $sec); 记住gotcha#2:必须加1到$ mon才能获得当前月份。 尝试使用my $now = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year+1900, $mon+1, $mday, $hour, $min, $sec); […]

如何在Perl中获取文件的最后修改时间?

假设我有一个文件句柄$fh 。 我可以用-e $fh检查它的存在,或者用-s $fh检查它的文件大小或者关于这个文件的附加信息 。 我怎样才能得到最后修改时间戳?

如何使用shell(awk,sed,whatever)删除文件中的前两列

我有一个在每一行有很多行的文件有很多列(字段)以空格分隔“”每行的列数是不同的我想删除前两列如何?

对于Perl开发的理想Vimconfiguration,你有什么build议?

有很多关于如何在PerlMonks.org上为Perl开发configurationVim / GVim的线程。 发表这个问题的目的是为了尽可能多地创build一个使用Vim / GVim进行Perl开发的理想configuration。 请发布您对.vimrc设置的build议以及有用的插件。 我将尝试将这些build议合并到一组.vimrc设置中,并将其推荐到插件,ftplugins和语法文件的列表中。 .vimrc设置 "Create a command :Tidy to invoke perltidy" "By default it operates on the whole file, but you can give it a" "range or visual range as well if you know what you're doing." command -range=% -nargs=* Tidy <line1>,<line2>! \perltidy -your -preferred -default -options <args> vmap <tab> […]

为什么在这个Perl正则expression式里,\ s +`比`s \ s *`快得多?

为什么用\s+replace\s* (甚至\s\s* )会导致此input的加速? use Benchmark qw(:all); $x=(" " x 100000) . "_\n"; $count = 100; timethese($count, { '/\s\s*\n/' => sub { $x =~ /\s\s*\n/ }, '/\s+\n/' => sub { $x =~ /\s+\n/ }, }); 链接到在线版本 我注意到一个缓慢的正则expression式s/\s*\n\s*/\n/g在我的代码中 – 当给出一个450KB的input文件,包含大量的空格和几个非空格在这里和最后一个换行符结束 – 正则expression式挂起,并没有完成。 我用s/\s+\n/\n/g; s/\n\s+/\n/g;直观地replace了正则expression式s/\s+\n/\n/g; s/\n\s+/\n/g; s/\s+\n/\n/g; s/\n\s+/\n/g; 一切都很好。 但为什么这么快呢? 在使用re Debug => "EXECUTE"我注意到\s+版本在某种程度上被优化,只能在一次迭代中运行: http : //pastebin.com/0Ug6xPiQ Matching […]

如何在GREP,REGEX或PERL模式下提取string

我有一个这样的文件: <table name="content_analyzer" primary-key="id"> <type="global" /> </table> <table name="content_analyzer2" primary-key="id"> <type="global" /> </table> <table name="content_analyzer_items" primary-key="id"> <type="global" /> </table> 我需要提取“name =”后面的引号,即content_analyzer,content_analyzer2和content_analyzer_items。 我在一个Linux机器上这样做,所以使用sed,perl,grep或bash的解决scheme是好的。

以编程方式从STDIN或Perlinput文件读取

在Perl中用stdin或者input文件(如果提供)以编程方式读取的最明智的方法是什么?

我们应该雇用一个在Perl中编写C的人吗?

我的一个同事最近采访了一些求职者,一个人说他们有很好的Perl经验。 由于我的同事不认识Perl,他要求我批评一下这个潜在聘请的一些代码(不在现场),所以我看了看,并告诉他我的疑虑(主要的原因是它最初没有评论并不像我们给他们足够的时间)。 然而,代码的作品,所以我不喜欢没有更多的投入说不走。 另一个值得关注的问题是,这段代码基本上看起来完全是用C语言编写的。从我做了Perl开始,我已经有一段时间了(而且我没有做太多的事情,我更像是一个Python脚本)回想一下,这是一个比这个人使用的更具performance力的语言。 我正在寻找真正的Perl编码人员的意见,以及如何改进的build议(以及为什么Perl编码人员应该知道这种改进方法)。 你也可以用一种完全不同的语言写一种语言的人(或者不应该雇用)来expression自己的意思。 我对你的论点感兴趣,但是这个问题主要是对代码的批评。 规范是成功处理一个CSV文件如下,并输出个别字段: User ID,Name , Level,Numeric ID pax, Pax Morgan ,admin,0 gt," Turner, George" rubbish,user,1 ms,"Mark \"X-Men\" Spencer","guest user",2 ab,, "user","3" 输出是这样的(潜在的雇佣代码实际上输出这个): User ID,Name , Level,Numeric ID: [User ID] [Name] [Level] [Numeric ID] pax, Pax Morgan ,admin,0: [pax] [Pax Morgan] [admin] [0] gt," Turner, George " rubbish,user,1: [gt] [ […]