Perlのお勉強 #1

Perlをかけるようになりたいと思い、色々と調べていく中で、よくわからない用語が割とたくさん出てくる。最近調べたことをまとめる。

1.plenv

システムPerlと呼ばれるOSが使うために始めら導入されているperlがある。それを使ってモジュールを導入したりすると、システムPerlに変更が加えられちゃって、システム的にあまりよくない。そのため、システムPerlとは別で、ユーザーPerlと呼ばれる自分専用のPerl環境を準備する。plenvはユーザーPerlの環境を準備してくれるツール。導入、バージョンを切り替えなどができる。

$ curl -L http://is.gd/plenvsetup | bash
$ plenv versions
$ plenv install -l
$ plenv install 5.20.2
$ plenv versions
$ plenv global 5.20.2
$ plenv versions

2.CPAN

CPANとは、Perlのモジュールが集まる場所。CPANに集まっているモジュールをインストールするには、cpanmというツールを使う。

$ plenv install-cpanm
$ cpanm LWP::UserAgent
$ perldoc -l LWP::UserAgent

3.LWP::UserAgent

HTTPのリクエストを発行し、Web上のリソースを取得する。

LWP::UserAgent は web ユーザエージェントを実装するクラスです。 LWP::UserAgent オブジェクトは web リクエストを発行(dispatch)するために 使えます。 http://perldoc.jp/docs/modules/libwww-perl-5.813/LWP/UserAgent.pod

LWP::UserAgentを使って、このBlogのHTMLソースを取得し、titleタグの要素を出力する。

use strict;
use warnings;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new();
my $res = $ua->get('http://shimabukuromeg.hatenadiary.jp/');
die "Response is error!" if $res->is_error;
my ($title) = $res->content =~ m!<title.*.?>(.+?)</title>!i;
print "$title\n";

4.ワンライナー

-E以降に直接プログラムを書いて、実行することができる。-M以降にモジュールを指定することもできる

perl -MLWP::Simple -E 'say get("http://shimabukuromeg.hatenadiary.jp/")

まとめ

plenvとCPANについて、同じことを何回もググっているように思ったので、まとめた。この記事をまとめるのに無駄に1時間ぐらいかかった。1時間もかかる内容ではないように思うので、もっと早くまとめれるようにする。