Perl で簡単なクラスを作成して動作を確認してみる
これまで、Perl でクラスを作成する必要はなかったのだが、HTML::Parser を継承したクラスを使うといろいろ便利そうなので、試してみた。
サンプルのクラス
Sample.pm として保存する。
package Sample; use strict; sub new { my ($class, $a, $b, $c) = @_; my $self = { a => $a, b => $b, c => $c, d => () }; bless $self, $class; return $self; } sub add { my ($self) = @_; $self->{b} = $self->{b}; $self->{a} = 'changed'; push @{$self->{d}}, 'A'; push @{$self->{d}}, 'B'; push @{$self->{d}}, 'C'; } 1; __END__
クラスを実行するファイル
sample.pl として保存する。
#!/usr/bin/env perl unshift @INC, '.'; use strict; use warnings; use utf8; use Data::Dumper; use Sample; my $s = Sample->new(1, 'a', 'B'); print $s->{a}, "\n"; print $s->{b}, "\n"; print $s->{c}, "\n"; $s->{a} = '2'; $s->add(); foreach my $var (@{$s->{d}}) { print $var, "\n"; } print Dumper($s);
実行してみる
% chmod u+x ~/sample.pl % perl -wc sample.pl sample.pl syntax OK % perl -wc Sample.pm Sample.pm syntax OK % ./sample.pl 1 a B A B C $VAR1 = bless( { 'c' => 'B', 'a' => 'changed', 'b' => '2', 'd' => [ 'A', 'B', 'C' ] }, 'Sample' );