matsutakegohan1's blog

matsutakegohan1(きゅーぞう)による、釣り、狩猟、技術?、セキュリティ?、その他の話

未分類

初めてのclass

投稿日:

初めてperlでclassを作ってみた。
内容はあんまり無い、phpで誰しも真っ先に作るclass。
配列にkeyとvalをぽんぽん入れて、出せて、毎回array_key_existsしなくて良い。
そんなclassはどう書くのか試してみた。

  1 #!/usr/local/bin/perl
  2
  3 package dataContainer;
  4 use strict;
  5 use warnings;
  6 use Data::Dumper;
  7 use Class::Struct;
  8
  9 struct( container => '%', ); # classのメンバ変数を宣言
 10
 11 sub init {
 12     my ($self) =@_;
 13     my %hash_ref;
 14     $self->container(\%hash_ref);
 15 }
 16
 17 sub set {
 18     my ($self,$key,$val) =@_;
 19     ${%{$self->container}}{$key} = $val;
 20     return 1;
 21 }
 22
 23 sub get {
 24     my ($self,$key) = @_;
 25     my %hash_ref = %{$self->container};
 26     return $hash_ref{$key} if exists $hash_ref{$key};
 27 }
 28
 29 package Main;
 30
 31 my $obj  = new dataContainer; # constructor
 32 my $obj2 = new dataContainer; # constructor
 33
 34 $obj->init();
 35 $obj2->init();
 36
 37 print "================================\n";
 38 $obj->set('hoge', 'moge');
 39 $obj->set('hoge1', 'moge1');
 40 $obj2->set('agg', 'hagehaghe');
 41 $obj2->set('iya', 'sorehanai');
 42
 43 # DEBUG
 44 #my @hoge = ( %{$obj->container} );
 45 #my $dumper = new Data::Dumper(\@hoge);
 46 #print $dumper->Dump();
 47
 48 print $obj->get('hoge'). "\n";
 49 print $obj->get('hoge1'). "\n";
 50 print $obj2->get('iya'). "\n";
 51 print $obj2->get('naiyo'). "\n";
 52
 53 1;

きもいようきもいよう。
コード貼り付けにVOXは向いてませんね。
やはりはてなでしょうか。

何でキモイと思うのでしょう。

  • Class::Structを利用するとコンストラクタが使えない?ので毎回initが必要?マジで?コンストラクタ使いたいよ。
  • メンバ変数containerはハッシュだってstructで宣言してるのにinitで必ずリファレンスと紐つけねばならない
  • 運命の19行。self->containerをハッシュにキャストして、それをスカラーにキャストして扱う。(これしかないの?マジで?)
  • 26行みたいな書き方はすげーいやだったのが段々快感に・・・
  • 値のdumpが面倒。
  • 引数のチェックは自前実装?(してないけど)
  • typoしまくる。(俺のせいか、テストハーネス早いうちに学ばないと。)
  • あああ、setでARRAYやHASHを入れる場合の考慮してないや、どう動くのかしら。

-未分類
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

バランタイン12年

☆☆☆ 香り:柑橘類の砂糖漬け?いやど甘いマンゴーを干したもの?麦、シェリー酒?味 :ベーシックな味わい。後味:クリームのようなマイルドで甘い香気、やっぱりバニラ?  最後に香りたつ塩気 一口ごとに塩 …

no image

TOEIC

ボクは馬鹿ですよ。ワタクシのTOEICは260点です。ポックンの来期の部署は英語必須です。 わはは。 てっちゃんもよく採用したなー。 NOVAかGABAか、さてどうしたものか。 英会話とかいったことあ …

no image

腰を痛めている

腰を痛めている。先日隅田川で数時間釣り、その後ウェーディングで数時間釣り腹立ったので帰り道のおかっぱりポイントで数時間釣り。 結果。次の日から腰から異音と、ただ座っているだけで腹がたって腹がたってしょ …

no image

誕生日

そういえば昨日29歳になってしまいました。 ここ数年はすごい速度で年をとります。   会社の人に誕生日がばれると、油揚げ大量とか、ブルーベリー大量とか、春巻き大量とか 虐めにあうので必至に …

no image

Hook Hooker Hookest!!

ジャコフック もちろん市販のジャコフックではない。 青物釣りに使用するアシストフックはジャコフックと決めている。 Jacohook 要はバケ付、オーロラスカート付のアシストフック。これのついているフッ …

第一精工の高速リサイクラーはすべての釣り人の必需品だと思っています。糸の巻き替え、巻き直しにこれが在るのと無いのでは天地の差があります!

シマノの防水クッションは、すべての時期で船釣りのオトモ。一番小さいサイズで大抵大丈夫です。冷えから守ってくれたり、エンジンの振動から守ってくれたり、寝るときに枕になります。

%d人のブロガーが「いいね」をつけました。