Love perl

Posted OpeSource

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Love perl相关的知识,希望对你有一定的参考价值。

perl是本人日常工作使用的神器之一,自2008年与perl结缘至今,协助我解决了不少工作中的问题,特别是一些重复和枯燥的工作。


本人Blog:http://tianyv.github.io/2015/06/15/perlintro


一、安装perl

1.1获取DWIM Perl:

Windows 上功能最齐全的整合开发环境:
DWIM Perl http://dwimperl.com/windows.html

  • Padre:本身用perl写的图形界面编辑器

  • StrawberryPerl:开源的perl语言解释器

  • 同时包含:常用CPAN模块


1.2安装模块:

可以用cpan或cpanm安装模块

#cpan   moulde name
#cpanm  moulde name

#如用cpan 安装cpanm

cpan
   App::cpanminus #安装特殊版本的模块
cpanm
Plack~">= 1.0000, < 2.0000"  # latest of 1.xxxx
cpanm
Plack@0.9990     # specific v. same as Plack~"== 0.9990"

另外可以用ppm安装模块

#ppm    moulde name  

二、写自已的模块

2.1安装工具Module::Starter

Install

cpanm   Module::Starter

Create

module-starter --module=Hexo::File  --mb --author=Tianyv 
     -
-email=laitaot@126.com

默认使用 ExtUtils::MakeMaker 作为 builder,可以后面再带 ‘–mb’ 使用 Module::Build 或者带 ‘–mi’ 来使用 Module::Install 作为 builder 引擎。


写Module

  • 位于文件夹\Hexo-File\lib\Hexo

  • 文件名File.pm

     package Hexo::File;     
    use Moose;         use Encode ();    
   
    use constant FILE_SLURP => eval { require File::Slurp; 1 };     has path => ( is => 'rw' );    
   
    sub
slurp {
       my $self = shift;
         my $slurp =          FILE_SLURP          ? File::Slurp::read_file( $self->{path} )          : do {
           local $/;
           open my $fh, '<', $self->{path} or die;            <$fh>;          };
       return Encode::decode( 'UTF-8', $slurp );     }     __PACKAGE__->meta->make_immutable;     no Moose;    
    1


三、手工安装模块

3.1使用Module::Build 安装

Module::Build 是用来代替 ExtUtils::MakeMaker 的。它不需要 make,可用 Perl 来完成打包工作。

 perl Build.PL
 perl Build
 perl Build test
 perl Build install


3.2使用ExtUtils::MakeMaker 安装

如果是网上下载的模块,包内有个Makefile.PL文件 然后使用MakeMaker 安装

 perl Makefile.PL
 dmake
 dmake test
 dmake install

如果本例已有Build.PL 可用以下命令生成Makefile.PL文件,再用MakeMaker 安装

 perl Build.PL
 perl Build
 perl Build dist 


四、手工卸载模块

4.1安装Module::Which查找模块路径

Install

cpanm   Module::Which


4.2写脚本

 use Module::Which qw/ which /; #将需查找的模块加入下行
 my $result = which('Module::Which', 'Hexo::File'); 
while (my ($module, $info) = each %$result) {
      print "$module:\n";
      print " version: $info->{version}\n" if $info->{version};
      print "   path: $info->{path}\n"  if $info->{path}; }


4.3运行脚本,根据显示的路径找到模块手工删除

附:Module::Build主要命令

 perl Build.PL
 perl Build
 perl Build manifest
 perl Build test
 perl Build dist
 perl Build install
 #将使用Module::Build过程中额外产生的文件删除
 perl Build realclean

以上是关于Love perl的主要内容,如果未能解决你的问题,请参考以下文章

perl中的队列

Perl 5.20.0 发布

带有动态值的write_rich_string(Perl)

oc如何提取文件中的第n行第n个字符 比如: hello, boy, girl, i love

I love you 的数学代码

Perl CGI 日期和时间选择器,自动填充当前日期和时间