[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:17955] Re: perl
-
From:Yasutaka SUMI
-
Date:Mon, 3 Mar 2003 02:18:46 +0900 (JST)
- Subject: [plamo:17955] Re: perl
- From: Yasutaka SUMI <sum@xxxxxxxxxxxxxxxxx>
- Date: Mon, 03 Mar 2003 02:18:46 +0900 (JST)
角です。ちょっと寝ようとしたんですが気になって・・・
From: Yasutaka SUMI <sum@mwb.biglobe.ne.jp>
> じゃなくて、早間さんの望む挙動としてはこっちなのかも・・・
>
> my $keyword = {
> phone => {pointer=> \$number, proc=>1,} ,
> addr => {pointer=> \$address, proc=>1,} ,
> };
早間さんのコーディングでは(なぜか?)シンボルテーブルから $number が
削除されてしまいますね。local 変数 "pointer" の型グロブに代入した瞬間
消えるようです。
> my $keyword = {
> phone => *number,
> addr => *address,
> };
> *pointer=$keyword->{phone};
>なら問題なしです。
そうですか? 手元の perl-5.8.0 と perl-5.6.1 で試してみましたが、
やっぱり $number が消えます。こんな挙動初めて知った・・・。
これだと問題なしでしょう。
----------------------------------------------------------------------
#!/usr/bin/perl -w
use strict;
use vars qw($pointer);
my $number="210";
my $address="city";
print "Before : <$number:$address>\n";
& SetValue ();
print "After : <$number:$address>\n";
sub SetValue {
local ($pointer);
my $keyword = {
phone => {pointer=> \$number, proc=>1,} ,
addr => {pointer=> \$address, proc=>1,} ,
};
*pointer=$keyword->{phone}->{pointer};
print "phone:$pointer\n";
*pointer=$keyword->{addr}->{pointer};
print "addr:$pointer\n";
}
----------------------------------------------------------------------
#型グロブは、あんまり使わない方がいいと思いますよ。
-----
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:17956] Re: perl, Yasutaka SUMI
- References
-
- [plamo:17949] Re: perl, Yasutaka SUMI
- [plamo:17950] Re: perl, Yasutaka SUMI
- [plamo:17952] Re: perl, Yasutaka SUMI
[検索ページ]
[メール一覧]
Plamo ML 公開システム