読者です 読者をやめる 読者になる 読者になる

Perl日記

PerlとかRubyとかPHPとかPythonとか

MVCその1.1

早速作っていこうと思ったけれど、何だか全く知らないモジュールが使われていたので、その辺だけさらっと調べてメモ。
というか自分Perl界どんだけ分かってへんのやろ…。

Class::Accessor::Lvalue::Fast

Class::Accessor::Fastの左辺値代入可能版みたいな。

use base 'Class::Accessor::Lvalue::Fast';
__PACKAGE__->mk_accessors(qw/id name/);

sub set_name {
  my ($self, $name) = @_;
  $self->name = $name;
}

HTTP::Response::Encoding

LWP::UserAgentと合わせてuseしておくと、get()の返り値のHTTP::Responseで、decode_content()やencodingなんかが使えるようになる。
Encode.pmで自分でやる必要がない。

use LWP::UserAgent;
use HTTP::Response::Encoding;
my $res = LWP::UserAgent->new->get($uri);
my $decode_content = $res->decode_content;
say $res->encoding;

Params::Validate

その名の通り、パラメータをバリデートする。Perlは何でも引数にとれるからなあ。

use Params::Validate qw/:all/;

sub kicchiri {
  my ($sclr_ref, $arry_ref) = validate_pos(@_,
    { type => SCALARREF }, { type => ARRAYREF } );
  CODE.. .. ..
}

my $scalar = 21;
my @array = 1 .. 100;
kicchiri(\$scalar, \@array);