[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:17943] perl



早間です。
perl ですが、次のコーディングはどこかまずいのでしょうか。
実行すると
Before : <210>
After  : <>    <<--- ここは <210> のはず。
と表示されます。下から2行目の「余計な行」のコメントを外すと
After  : <210>
と表示されます。
或いは「ここの local」を削除すれば働きます。

# 「ここの local」を削除するのは我慢(横柄な考え)できるのですが
# 「余計な行」を付けると働くのが疑問です。

plamo 3.0 の perl v5.6.1 
自分でコンパイルした v5.8.0
の双方で同じ結果です。
    my $keyword = {
        phone   => *number,
        addr   =>  *address,
    };
    *pointer=$keyword->{phone};
なら問題なしです。

---------------------------- ここから ---------------------------
#! /usr/bin/perl
$number="210";
$address="city";

print "Before : <$number>\n";
& SetValue ();
print "After  : <$number>\n";

sub SetValue {
    local ($pointer);     #<<----ここの local
    my $keyword = {
        phone   => {pointer=> *number, proc=>1,} ,
        addr   => {pointer=> *address, proc=>1,} ,
    };
    *pointer=$keyword->{phone}->{pointer}; # <<-- これが問題
#    *pointer=$keyword->{addr}->{pointer}; # <<-- 余計な行
}
---------------------------- ここまで ---------------------------

-- 早間  yossi@yedo.src.co.jp

Follow-Ups
[plamo:17949] Re: perl, Yasutaka SUMI

[検索ページ] [メール一覧]
Plamo ML 公開システム