decadence

個人のメモ帳

クラス,CPAN

先日から諸事情でperlを少し書き始めました
当初perlとか知らねーよ状態だったんですが,perlに少しはまってるんですよこれが
入門書的なもの全く読まずにひたすらぐぐりながら書く書く

取りあえずメモ

perlのコードとしては拡張子にpl,pmの2種類が用いられる
useを用いてクラスを表すならばクラス側はpmを用いる
ちなみにuseではmain.plが呼ばれた際にBEGIN{require Class; import Class;}が行われるのと等価になる

================================================
---------ファイルその1-main.pl----------
use utf8; use strict; use warnings; #この3つは必須 
use Class;

my $obj = Class->new(); #インスタンスの生成

print $obj, "\n"; #自身の出力(これでperlのクラスはハッシュとして生成されている事が分かる)
print $obj->method(\@args), "\n"; (関数を使ってみただけ.クラス変数の確認にも)

---------ファイルその2-Class.pm----------
use utf8; #この3つは必須
use strict;
use warnings; 
package Class; #クラスを作成するのに必須

my $v; #クラス変数
#コンストラクタ
sub new{
   my $class = shift;  #これはshift関数で通常は配列の先頭を取り出す.
   #引数無しの場合sub関数無いならば@_がデフォルトの引数として勝手に設定されるため,コンストラクタの引数の一番目をここでは取得していることになる
   return bless { time => $time }, $class;  #コンストラクタではblessしたものを返す.
}
sub method {
   my ($self, @args) = @_; #0番目にはクラス自身の名前が入る
}
1; #きちんとクラスがここで終わりだというsign

perlの省略の美学?って言うんですか
単純なコードなら数行で書けるというのが楽しいですね

ついでにjavaでいう外部jar的なものとしてCPAN

# perl -MCPAN -e shell //CPAN shellの起動

ひたすらエンター押します.area聞かれたらアジアや日本
取りあえず候補がなかったらこのあたり 2011/7/16現在
ftp://ftp.nara.wide.ad.jp/pub/CPAN/
http://ftp.nara.wide.ad.jp/pub/CPAN/

起動したら欲しい関数をThe CPAN Search Site - search.cpan.orgで調べます

install モジュール名

簡単で良いですね
ところでこのpmモジュールはどこに保存されてるんだろう…
調べなきゃ…

面倒な人は以下の方法で良いらしい

# perl -MCPAN -e 'CPAN::Shell->install("Net::Telnet")'


後取りあえずperlの本1冊読みたいですね…
基礎知識無しにコード書いてしまったってのはどうなのか…
リャマ本?アルパカ本?
まずは本屋へgoですね

参考
CPAN を使い Perl モジュールをインストールする|perl|@OMAKASE