Perlでクラスを作成してみたけど…
やりかた間違ったと思うけどわからん
ちょっと今回は静的メソッドのみのモジュールのみ
インスタンスもやるけど「相棒」みてたら時間がなくなった。
構成
. + lib + Bus.pm + Car.pm + sample.pl
ソース
実行ソース
#!/usr/bin/env perl use strict; use warnings; use lib 'lib'; use Car; use Bus; # Carモジュールの結果 print Car::name() . "\n"; print Car::run() . "\n"; # Busモジュールの結果 print Bus::name() . "\n"; print Bus::run() . "\n";
Carモジュール
package Car{ # プラグマ? use strict; use warnings; # ================================== # メソッド # ================================== # 車の名前 sub name{ return "車の名前"; } # 走る sub run{ return "走ります"; } } # 1または真になる情報ならなんでもいいみたい... 1;
Busモジュール
package Bus{ # プラグマ? use strict; use warnings; use base qw(Car); # ================================== # メソッド # ================================== # 車の名前 sub name{ return "バス"; } # 継承…じゃねーよな (;´∀`) sub run{ # ちょっとまてこればおかしい… return Car::run(); } } # 1または真になる情報ならなんでもいいみたい... 1;
結果
[root@localhost ~]# perl sample.pl 車の名前 走ります バス 走ります [root@localhost ~]#
問題点
子クラスで親クラスの関数を使用したかったけどなんかエラーが出て実行出来なかったからとりあえず隠蔽化して対応してみる。
クラス用のモジュールの「Mouse」にちょっと触れて動きを確認するしかない。
また、動的メソッドではどうなるかも確認しないと。
まとめ
Perlではオブジェクト指向の書き方にはちょっといくつか気をつけなければいけないことがありそう。
オブジェクト指向用のモジュールがあるのでちょっと調査してみたほうが良いみたい。
親、子、孫クラス間の継承ができるような感じの実装をできるようにしたいのでこれはやる必要がありそう。
おまけ
Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)
- 作者: 和田裕介,石田絢一(uzulla),すがわらまさのり,斎藤祐一郎
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/11
- メディア: 大型本
- この商品を含むブログ (2件) を見る
届いた!
軽く読んだ限りでの感想としてはこの本だけではWebアプリの公開は難しいかも…
ただ、それをサポートする情報が網羅されています。(例:書籍やURL、Webサービスなど…)
細かい情報はないので細かい情報などは別途、専門の書籍を購入する必要があります。
Webアプリケーションを作成して、公開~運用までの流れを理解するには適しています。
PHP、Perl、Rubyの言語の情報も掲載されています。