テレワークならECナビ Yahoo 楽天
LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル
■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 最新50
メモ3
- 488 :名無しさん@勉強中:08/02/15 21:29:09 ID:SyuqxcwJ
- >>487
「package クラス名」は他の言語での「Class クラス名」に相当する文。
blessはPerlでオブジェクト指向を実現する上で必ず必要な関数。
blessしないとオブジェクトにならない。
shiftは使わなくてもいいんだが、引数が格納される配列@_の最初にパッケージ名(クラス名)
が入っているのでこれを@_から除かないと引数を使うときに2番目(添え字では1)から
はじめなければいけないから。
じゃぁ矢印演算子についてもうちょっと。
# Example これはオブジェクト指向とは関係アリマセン
%hash = ('aho' => 'hige','baka' => 'hage'); # %hashはハッシュです。
$hash_ref = \%hash; # $hash_refにはハッシュのリファレンスが入ります。
print $hash{'aho'}; # => hige
print $hash_ref->{'baka'}; # => hage
# Example End
$hash{'aho'}は%hashの'aho'という要素にアクセス。
対して、$hash_ref->{'baka'}は$hash_refという変数をデリファレンスして、'baka'という要素にアクセスします。
Perlのオブジェクトは、全て既存の型(変数、配列、ハッシュ)のリファレンスです。
たとえば、Carというクラスがあったとしましょう。
my $kuruma = Car->new('TEST');
# ↑の文の矢印演算子はパッケージを指定する用法。$kuramaに入るのは何かのリファンレンス
$kuruma->hashiru('fast');
# ↑の文は「&Car->hashiru($kuruma,'test');」「&Car::hashiru($kuruma,'test');」と同義。
# ただ、↑のように書いたほうがオブジェクト指向プログラミングらしいというだけ。
# Perlのオブジェクトの実体は単なるリファレンスなので、
# $kurumaがハッシュリファレンスだったとすると、↓のように直接インスタンス変数にアクセスできる。
$kuruma->{'syasyu'} , $${kuruma}{'syasyu'}
500KB
続きを読む
掲示板に戻る 全部 前100 次100 最新50