Perl类别订阅
Perl – Linux中使用CPAN安装Perl模块
Perl – 查看已经安装的包
来自这里的2楼。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/usr/local/bin/perl use strict; use ExtUtils::Installed; my $inst= ExtUtils::Installed->new(); my @modules = $inst->modules(); foreach(@modules) { my $ver = $inst->version($_) || "???"; printf("%-12s -- %s\n", $_, $ver); } exit 0; |
结果如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
Any::Moose -- 0.18 Authen::SASL -- 2.10 CGI -- 3.55 CGI::Ajax -- 0.701 CGI::Session -- 4.48 CPAN::Meta -- 2.112150 Cache::Memcached -- 1.29 Chart -- ??? Chart::PNGgraph -- 1.21 Class::Accessor -- 0.30 Class::Method::Modifiers -- 1.08 Compress::Raw::Bzip2 -- 2.060 Compress::Raw::Zlib -- 2.060 Compress::Zlib -- 2.060 Crypt::Blowfish -- 2.10 Crypt::CBC -- 2.22 Crypt::SSLeay -- 0.64 Crypt::Twofish -- 2.12 Cwd -- 3.24 DBD::mysql -- 4.003 DBI -- 1.54 Data::ShowTable -- undef Data::Types -- 0.09 DateTime -- 0.72 Digest -- 1.15 Digest::HMAC -- 1.01 Digest::MD5 -- 2.36 Digest::SHA1 -- 2.11 Encode -- 2.37 Encode::HanConvert -- 0.33 Encode::Locale -- 1.03 ExtUtils::CBuilder -- 0.280202 ExtUtils::MakeMaker -- 6.59 ExtUtils::ParseXS -- 3.03 FCGI -- 0.73 File::Listing -- 6.04 File::Slurp -- 9999.19 Font::TTF -- 0.40 GD -- 2.41 GD::Graph -- 1.4308 GD::Text -- 0.86 GSSAPI -- 0.24 HTML::Parser -- 3.56 HTML::Tagset -- 3.10 HTTP::Cookies -- 6.01 HTTP::Daemon -- 6.01 HTTP::Date -- 6.02 HTTP::Message -- 6.06 HTTP::Negotiate -- 6.01 IO::All -- 0.46 IO::Compress -- ??? IO::Compress::Base -- 2.060 IO::Compress::Zlib -- ??? IO::HTML -- 1.00 IO::Socket::SSL -- 1.84 IO::String -- 1.08 IO::Stringy -- 2.110 IPC::Cmd -- 0.72 Image::Magick -- 6.3.2 JSON -- 2.15 LWP -- 6.05 LWP::MediaTypes -- 6.02 LWP::Protocol::https -- 6.03 List::Util -- 1.19 Locale::Maketext::Simple -- 0.21 Locale::gettext -- 1.05 MCrypt -- 0.92 MD5 -- 2.03 MIME::Base64 -- 3.07 Math::Round -- 0.06 Mcrypt -- 2.5.7.0 Module::Build -- 0.3800 Module::CoreList -- 2.54 Module::Load -- 0.20 Module::Load::Conditional -- 0.44 Module::Metadata -- 1.000005 MongoDB -- 0.45 Mozilla::CA -- 20130114 Net -- ??? Net::HTTP -- 6.06 Net::RabbitMQ -- 0.2.6 Net::SSLeay -- 1.52 Net::TcpDumpLog -- 0.11 OLE::Storage_Lite -- 0.19 PadWalker -- 1.98 Params::Check -- 0.32 Parse::RecDescent -- 1.967001 Perl -- 5.8.8 Perl::OSType -- 1.002 PerlIO::gzip -- 0.18 Spreadsheet::WriteExcel -- 2.37 String::CRC32 -- 1.4 Sub::Uplevel -- 0.24 Term::ReadKey -- 2.31 Term::ReadLine -- 1.14 Test::Exception -- 0.31 Test::Fatal -- 0.010 Test::Harness -- 3.23 Test::Simple -- 0.98 Tie::IxHash -- 1.22 Try::Tiny -- 0.11 URI -- 1.35 UUID::Tiny -- 1.03 WWW::RobotRules -- 6.02 boolean -- 0.28 version -- 0.93 |
然而,我发现上面的代码,有一些明明已经安装好的模块并没有显示出来,原因不详,没空琢磨。故可用下述代码单独检查——其实就是看看版本。[……]
Perl – 模拟POST请求
记录。
1 2 3 4 5 6 7 8 9 10 11 12 |
use LWP::UserAgent; my $UA = LWP::UserAgent->new; my $URL = "http://www.abc.com/test.php"; my $response = $UA->post( $URL, [ 'id' => '12','type' => 'abc'] ); if ( $response->is_success ) { print $response->content; } else { print "ERROR\n"; } |
Perl – 下载文件
打开CGI页面并开始下载指定文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
use CGI ':standard'; use CGI::Carp qw(fatalsToBrowser); my $FILES_PATH; # 待下载文件路径 my $FILE_NAME; # 待下载文件名 my @FILE_HOLDER; $FILES_PATH = "/data/"; $FILE_NAME = param('file_name'); if ($FILE_NAME eq '') { print "Content-type: text/html\n\n"; print "You must specify a file to download."; } else { unless(-e "$FILES_PATH/$FILE_NAME") { # 如果文件不存在 print qq[Content-type: text/html\n\n]; print qq[The file doesn't exist.]; exit; } # 打开文件 open(DLFILE, "<$FILES_PATH/$FILE_NAME") || Error('open', 'file'); @FILE_HOLDER = <DLFILE>; close (DLFILE) || Error ('close', 'file'); print "Content-Type:application/x-download\n"; print "Content-Disposition:attachment;filename=$FILE_NAME\n\n"; # 存到本地的默认文件名 print @FILE_HOLDER; # 开始下载 } |
注:上述代码中,由于文件句柄带有尖括号,所以在页面显示有问题。
Perl – 对 URL 地址进行编码
想到如今 URL 中可以有中文,而为了避免编码问题入库的时候需要把这些个玩意给转义,就是做 PHP 里 urlencode() 这件事儿,记录一下。
用替换方法进行编码:
Url encode:对 \n 不转码
1 |
perl -pe 's/([^\w\-\.\@])/$1 eq "\n" ? "\n":sprintf("%%%2.2x",ord($1))/eg' keywords.list |
 [……]
Perl – Perl对于encode的用法
能抄就抄,转自:http://www.cnblogs.com/slaughter/archive/2007/03/15/675791.aspx
这貌似是大概在三个月前的草稿了,今儿给整完了…
Perl 从 5.6 开始已经开始在内部使用 utf8 编码来表示字符,也就是说对中文以及其[……]
Perl – 处理图片(Image::Magick)
工作中涉及,汇总记录。
首先是 CPAN 的信息:
http://search.cpan.org/~jcristy/PerlMagick-6.72/Magick.pm.in
简要说明如下:
1 2 3 4 5 6 7 8 |
use Image::Magick; $p = new Image::Magick; $p->Read("imagefile"); $p->Set(attribute => value, ...) ($a, ...) = $p->Get("attribute", ...) $p->routine(parameter => value, ...) $p->Mogrify("Routine", parameter => value, ...) $p->Write("filename"); |
不过随后看到了官方的介绍:[……]