Perl的流行应用是什么?它在当代有哪些用途?

7

Perl有哪些流行的现代用途?

编辑

我应该更具体地说明。我想知道人们在大规模上(普遍)使用Perl的情况,而不是它在个人层面上可以用于什么。


1
这应该是社群维基。 - Robert
14个回答

14
作为一种胶水语言、系统管理员的语言,现在它回归并使用Catalyst掌控互联网。

2
沃特,催化剂,看起来很棒! - Ape-inago
2
那是因为它很棒!;) - Quentin

13

在我的大学中,Perl广泛用于生物信息学任务。主要涉及文件格式的自动更改、与数据库的检查以及将结果转换回来等操作。因此,它主要用于更改文件格式、正则表达式和处理大型数据集。


10

一如既往:实现不可能的事情。 ;-)


8

除了Python之外,我公司的系统管理员也喜欢使用它来完成自动化任务。 "如果一件事值得做,就值得自动化"似乎是他们的口头禅,如果可以用五行代码实现,那就更好了。


8
这个问题的难点在于Perl是一种非常多才多艺的语言。在代码高尔夫和与awk/sed的相似性之间,它仍然被广泛用作粘合语言和快速的系统管理员任务处理语言。
通过CPAN,可以快速编写许多非常有用且更高级的东西。
它与数据库接口良好,并且有大量用于Web设计的框架。正如我自己使用它所注意到的那样,它与Ajax非常兼容。
采用最佳实践,你将拥有一个非常擅长完成非常大的编程任务的系统。整个CPAN都证明了Perl的可重用性和封装性。
请参见雇主在http://jobs.perl.org/寻找的技能。

7

对这个问题有点困惑。针对编码来说,我认为更好的提问方式是:Perl没有用在哪些领域?我的回答是:写设备驱动程序,还有其他吗?

Perl被用于GUI应用(如Padre),互联网应用(如Catalyst),其他网络/套接字(如POE),访问数据库(如DBI),密码学(如Crypt命名空间),Web服务(如SOAP),处理二进制格式(pack/unpack)等等…

当然,它也可以用于各种文本处理。

这只是我最近使用它所涉及到的内容。


6
亚马逊和IMDB使用Perl,更具体地说是Mason,如果我没记错的话。

5

我目前正在使用Perl编写自动化测试套件,用于公司的网站(使用WWW::MechanizeWWW::Selenium)。我的一个同事正在为其他类型的服务器做同样的工作。我们还将其用于我们的监控软件(Nagios)。我每天都会将perl用作命令行工具,以帮助进行基本的系统管理员任务。


4

尝试将终端大小设置为至少120x50,你会恍然大悟;)

                                                   #
                                               sub j(\$){($
                 P,$V)=                      @_;while($$P=~s:^
             ([()])::x){                    $V+=('('eq$1)?-32:31
       }$V+=ord(  substr(                 $$P,0,1,""))-74} sub a{
      my($I,$K,$  J,$L)=@_               ;$I=int($I*$M/$Z);$K=int(
     $K*$M/$Z);$J=int($J*$M             /$Z);$L=int($L*$M/$Z); $G=$
     J-$I;$F=$L-$K;$E=(abs($          G)>=abs($F))?$G:$F;($E<0) and($
      I,$K)=($J,$L);$E||=.01       ;for($i=0;$i<=abs$E;$i++ ){ $D->{$K
              +int($i*$F/$E)      }->{$I+int($i*$G/$E)}=1}}sub p{$D={};$
             Z=$z||.01;map{    $H=$_;$I=$N=j$H;$K=$O=j$H;while($H){$q=ord
            substr($H,0,1,"" );if(42==$q){$J=j$H;$L=j$H}else{$q-=43;$L =$q
          %9;$J=($q-$L)/9;$L=$q-9*$J-4;$J-=4}$J+=$I;$L+=$K;a($I,$K,$J,$ L);
          ($I,$K)=($J,$L)}a($I,$K,$N,$O)}@_;my$T;map{$y=$_;map{ $T.=$D->{$y}
          ->{$_}?$\:' '}(-59..59);$T.="\n"}(-23..23);print"\e[H$T"}$w= eval{
          require Win32::Console::ANSI};$b=$w?'1;7;':"";($j,$u,$s,$t,$a,$n,$o
          ,$h,$c,$k,$p,$e,$r,$l,$C)=split/}/,'Tw*JSK8IAg*PJ[*J@wR}*JR]*QJ[*J'.
           'BA*JQK8I*JC}KUz]BAIJT]*QJ[R?-R[e]\RI'.'}Tn*JQ]wRAI*JDnR8QAU}wT8KT'.
           ']n*JEI*EJR*QJ]*JR*DJ@IQ[}*JSe*JD[n]*JPe*'.'JBI/KI}T8@?PcdnfgVCBRcP'.
            '?ABKV]]}*JWe*JD[n]*JPe*JC?8B*JE};Vq*OJQ/IP['.'wQ}*JWeOe{n*EERk8;'.
              'J*JC}/U*OJd[OI@*BJ*JXn*J>w]U}CWq*OJc8KJ?O[e]U/T*QJP?}*JSe*JCnTe'.
               'QIAKJR}*JV]wRAI*J?}T]*RJcJI[\]3;U]Uq*PM[wV]W]WCT*DM*SJ'.  'ZP[Z'.
                  'PZa[\]UKVgogK9K*QJ[\]n[RI@*EH@IddR[Q[]T]T]T3o[dk*JE'.  '[Z\U'.
                    '{T]*JPKTKK]*OJ[QIO[PIQIO[[gUKU\k*JE+J+J5R5AI*EJ00'.  'BCB*'.
                         'DMKKJIR[Q+*EJ0*EK';sub h{$\ = qw(% & @ x)[int    rand
                          4];map{printf  "\e[$b;%dm",int(rand 6)+101-60*   ($w
                           ||0);system(  "cls")if$w ;($A,$S)=    ($_[1],   $
                            _[0]);($M,   @,)= split  '}';for(     $z=256
                            ;$z>0; $z   -=$S){$S*=   $A;p @,}      sleep$_
                            [2];while   ($_[3]&&($    z+=$ S)       <=256){
                            p@,}}("".   "32}7D$j"     ."}AG".       "$u}OG"
                            ."$s}WG"    ."$t",""      ."24}("        ."IJ$a"
                            ."}1G$n"    ."}CO$o"     ."}GG$t"        ."}QC"
                             ."$h}"      ."^G$e"    ."})IG"          ."$r",
                             "32}?"       ."H$p}FG$e}QG$r".          "}ZC"
                             ."$l",          "28}(LC" .""            ."".
                             "$h}:"           ."J$a}EG".             "$c"
                             ."}M"             ."C$k}ZG".            "$e"
                             ."}"             ."dG$r","18"          ."}("
                            ."D;"            ."$C"  )}{h(16         ,1,1,0
                           );h(8,          .98,0,0   );h(16         ,1,1,1)
                           ;h(8.0         ,0.98,0,     1);         redo}###
                         #written                                 060204 by
                       #liverpole                                  @@@@@@@
                    #@@@@@@@@@@@

3
这是 Perl 的一个永久使用场景--极客艺术 :-) - Massimiliano

4

最近,我写了一个简短、简单的脚本来解析日志文件中的一些数据。对于快速编写脚本任务来说,我发现它非常容易和有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接