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

[plamo:17963] Re: perl



早間義博 <yossi@yedo.src.co.jp> さん wrote.

> これは、書いてみましたが、効果はありませんでした。別の意味なのでしょ
> うか。
> 
> > 
> >     my $keyword = {
> >         phone   => {pointer=> \$number, proc=>1,} ,
> >         addr   => {pointer=> \$address, proc=>1,} ,
> >     };
> > 
> 
> この書き方は
>          phone   => {pointer=> *number, proc=>1,} ,
> とどのように違うのでしょう。

*number は型グロブで、田原さんも書かれているように Perl 4 時代の産物です。
Perl 5 では $number へのポインタ(正確にはリファレンス)は \$number とし
て動作させるのがよいです。*number は十分にデバッグされているかどうか不明
だと思います。

> perl で迷うのは、殆ど同じのように見えるのに
>  $abc{"aaa"}{"xyz"}="aaa";
> と
>  $abc={
>      aaa => { xyz=> "aaa",},
>  };
> が違うのです。
> この違いを「らくだ」からは読めませんでした。

$abc{"aaa"}{"xyz"}="aaa";
print $abc{"aaa"}{"xyz"} . "\n";

$abc={
  "aaa" => { "xyz"=> "aaa",},
};
print ${$abc}{"aaa"}{"xyz"} . "\n";

ということだと思います。ハッシュのキーには "" か '' をつけたほうが無難です。

--
本田博通(閑舎)
テキストとスクリプトの http://rakunet.org/TSNET/

Follow-Ups
[plamo:17969] Re: perl, 早間義博
References
[plamo:17955] Re: perl, Yasutaka SUMI
[plamo:17956] Re: perl, Yasutaka SUMI
[plamo:17958] Re: perl, 早間義博

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