|
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 らしいと分った。有難い。
$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 の複数形だね。
ただし、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.の気がする。 ( つっこみ )
|
最近の日記 2024年10月25日 ・Die Frau ohne Schatten 影のない女 2024年07月03日 ・kicad oddity 2024年05月08日 ・comparison on ./buildsh tools 2024年05月06日 ・py-setuptools (python 3.11.9) ・make release took 1 hours and 10 min ・qemu invocation for 10.99.10 2024年05月05日 ・Windows 10 version ・serial connection ・bc bench | ||||||||||||||