- 1 名前:nobodyさん mailto:sage [2007/09/16(日) 19:49:43 ID:???]
- Perlのコーディングで困ってる人のスレです。
【投稿する際の注意】 質問するときは内容をよく吟味してから投稿してください。 「コマンドの意味がわかんない」とかはマニュアル見ましょう。 回答者さんは何でも屋じゃありません。 1: 自分はこういう事がしたい。 2: それでこんな風にやってみたが・・・ 3: こんなエラーが出て上手く行かなかった。 最低でも1と3が無いと誰も答えられないよ。 良い回答は良い質問から。一緒に勉強しましょう。 お勧めサイトは >2 以降 前スレ ttp://pc11.2ch.net/test/read.cgi/php/1180492441/ 過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
- 658 名前:nobodyさん mailto:sage [2007/12/19(水) 01:14:31 ID:???]
- my %AA = ( name => 1234 );
my @BB = ( {name => 'abc'}, #$BB[0]に無名ハッシュ(リファレンス)をいれる {name => 'ああああ'}, #$BB[1]に〃 {name => '!?'} #$BB[2]に〃 ); kansuu( \%AA ); #\をつけることで%AAのリファレンスがわたる kansuu( $bb[0] ); #$bb[0]の無名ハッシュリファレンスを渡す kansuu( $bb[1] ); kansuu( $bb[2] ); sub kansuu { printf('%s<br>',shift->{name});#ハッシュリファレンスは->をつけて要素を取り出す }
- 659 名前:nobodyさん mailto:sage [2007/12/19(水) 02:00:39 ID:???]
- $,@,%,\と(),{},[]と->の組み合わせで大抵何とかなる。
正直スカラーのリファレンスの説明は自身がないけどおよそあってると思う my $scalar = 'abc'; #スカラー my $scalar_ref = \$scalar; #スカラーのリファレンス my $anon_scalar_ref = \do {my $anon;}; #微妙に無名じゃないけど my @array = (1,2,3); #配列 my $array_ref = \@array; #配列のリファレンス my $anon_array_ref = [1,2,3]; #無名配列のリファレンス my %hash = (a=>1,b=>2,c=>3); #ハッシュ my $hash_ref = \%hash; #ハッシュのリファレンス my $anon_hash_ref = {a=>1,b=>2,c=>3}; #無名ハッシュのリファレンス my $slacar_object = bless $scalar_ref => __PACKAGE__; # スカラー使ったオブジェクト my $array_object = bless $array_ref => __PACKAGE__; # 配列使ったオブジェクト my $hash_object = bless $hash_ref => __PACKAGE__; # ハッシュ使ったオブジェクト #素直に取り出せる printf "scalar=%s\n",$scalar; printf "array=%s\n",$array[0]; printf "scalar=%s\n",$hash{a}; #アドレスっぽいのがとれる printf "scalar_ref=%s\n",$scalar_ref; printf "array_ref=%s\n",$array_ref; printf "scalar_ref=%s\n",$hash_ref; #リファレンス先の値書き換えたり取り出したり $$scalar_ref = '書き換えちゃった';printf "scalar=%s\n",$$scalar_ref; $array_ref->[1] = '書き換えちゃった';printf "array=%s\n",$array_ref->[1]; $hash_ref->{b} = '書き換えちゃった';printf "scalar=%s\n",$hash_ref->{b}; #デリファレンスする(copyが作られる) my $scalar2 = ${$scalar_ref}; my @array2 = @{$array_ref}; my %hash2 = %{$hash_ref};
|

|