[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:17956] Re: perl
-
From:Yasutaka SUMI
-
Date:Mon, 3 Mar 2003 03:09:50 +0900 (JST)
- Subject: [plamo:17956] Re: perl
- From: Yasutaka SUMI <sum@xxxxxxxxxxxxxxxxx>
- Date: Mon, 03 Mar 2003 03:09:49 +0900 (JST)
角です。
From: Yasutaka SUMI <sum@mwb.biglobe.ne.jp>-
> #型グロブは、あんまり使わない方がいいと思いますよ。
実際のアドレスを追っかけてみましょう。SetValue() 内部で型グロブを使っ
ているので、明示的に指定しないと $number も $address も local 変数扱い
になっているはずです。
以下は $address のアドレスが変わってしまう例です。
SetValue() の外では $number のアドレスは元に戻ります。
どうしても $number も $address も local でやるなら、SetValue() の最後で、
undef *pointer;
を入れると、元通りになります。
--------------------------------------------------------------------
#!/usr/bin/perl -w
use strict;
use vars qw($number $address $pointer);
local $number="210";
local $address="city";
print "Before : <$number:$address>\n";
print "ADDRESS : <" . \$number . ":" . \$address . ">\n\n";
& SetValue ();
print "After : <$number:$address>\n";
print "ADDRESS : <" . \$number . ":" . \$address . ">\n";
sub SetValue {
local ($pointer);
my $keyword = {
phone => {pointer=> *number, proc=>1,} ,
addr => {pointer=> *address, proc=>1,} ,
};
print "Middle1: <$number:$address>\n";
print "ADDRESS : <" . \$number . ":" . \$address . ">\n\n";
*pointer=$keyword->{phone}->{pointer};
print \$pointer . ":$pointer\n\n";
print "Middle2: <$number:$address>\n";
print "ADDRESS : <" . \$number . ":" . \$address . ">\n\n";
*pointer=$keyword->{addr}->{pointer};
print \$pointer . ":$pointer\n\n";
print "Middle3: <$number:$address>\n";
print "ADDRESS : <" . \$number . ":" . \$address . ">\n\n";
# undef *pointer; # ←後始末のおまじないはコメントをはずす
}
---------------------------------------------------------------------
#おもしろいですね。
-----
Yasutaka SUMI <sum@mwb.biglobe.ne.jp>
http://pgp.nic.ad.jp:11371/pks/lookup?op=get&search=0x8842F549
Key fingerprint = 5F6D 79E1 E52D 2B38 B9B5 13F5 F8E9 F3E1 8842 F549
- Follow-Ups
-
- [plamo:17958] Re: perl, 早間義博
- References
-
- [plamo:17950] Re: perl, Yasutaka SUMI
- [plamo:17952] Re: perl, Yasutaka SUMI
- [plamo:17955] Re: perl, Yasutaka SUMI
[検索ページ]
[メール一覧]
Plamo ML 公開システム