hns - 日記自動生成システム - Version 2.19.9

先月 2007年07月 来月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2007年07月15日() 旧暦 [n年日記] [更新:"2007/07/16 01:16:39"]

#1 [Lang] Perl の my と local もひとつ our

Perl の変数宣言で my と local の違いは、google で探せば、多くの説明が見つかる。 しかし、似たもので、もう一つあったのを思い出せない。 use strict で Jcode.pm を使う時だったか。 Getopts の方だ。 弾 小飼さんの Web: perl - use strict; # and be happy を見ていたら、 探していたのは our らしいと分った。有難い。
my局所変数 local variable (perl 5 以降)
local大域変数を上書きして使う。外に戻れば、その値は捨てられる
our短い名前を使えるようにしてくれる
例えば package config の中で宣言されている $my_name は、package config 以外では
 $config::my_name; 
と書く必要がある。しかし our を使えば、$my_name だけで参照出来る。
# 話の都合上 Getopt を使うとする
use Getopt::Std;
# 宣言
our(%opts);
# 参照
getopt('t',\%opts ); # opt_t for TeX output;
2007-02-22 my,our,localってわかりにくぃ ? !
説明を読みましょう、ということで
 perldoc -f our
しかし説明の一番最初に、次のように言われると、
"our" associates a simple name with a package variable in the current package for use within the current scope.
これだけで大抵の人は、退散してしまうのでは、と思う。
our で変数を宣言すると、 パッケージ内 で宣言されている変数を、 今の名前空間で、短い名前で使えるようにする
これだとちょっと不完全なので:
our で変数を宣言すると、 (現在有効となっている) パッケージ 内で宣言されている変数を、 今の名前空間で、短い名前で使えるようにする。これはサブルーチン等で呼出した先で も利用可能
今更だけれど our って my の複数形だね。
my自分だけの
our私達の
localちょっと許してね
普通の(局所)変数は my を使う。local が必要なのは、こういう時、っていう説明があると いいかも知れない。

ただし、perl 4 で local だけだったのが perl 5 で my + local になった訳だから、 良く考えずに local だけで書いていても、(まあ)何とかなる、という考え方も あるかも知れない。しかし苦肉の策としての上位互換なのだから、なるべく my に置換えた方がいいよ、と言っておこう。

上の英語だけれど、associates ... with ___ , ___ を ... と関連付ける、 というのは母国語ならすぐ意味が分るのかな。しかし、a simple variable, a package variable の両方に a が付いているけれど、ちょっと違うのでは、 という気がする。英語的には「ある名前を .. ある名前の」だから、 確かに両方 a かも知れないが。 少なくとも、

"our" associates a simple name with its package variable in the current package for use within the current scope.
の気がする。



最近の日記
2019年05月05日
graphic monitor for bulkbuild count
2019年03月31日
xfce added
2019年03月29日
bulkbuild 8.99.36
2019年03月16日
立川へ
こうもり
2019年03月15日
php-owncloud
以上、1 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)