人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

おせわになります。Perl でリファレンスを使って作った配列のサイズを調べる方法を教えてください。

e.g.(コード例)
my @data = ();
my $ref_hash = {};
(ループ){
$ref_hash->{$key} = "$str"; # リファレンス・ハッシュに要素追加
}
$data[$counter] = $ref_hash;

以上のような場合の @data のサイズが知りたいです。用途としてはサブ・ルーチンに複数の配列リファレンスを渡して、サブ・ルーチン側で配列サイズを取得して処理を加えたいのです。自分でも試行錯誤してみましたが巧く行きませんでした。

お知恵を拝借させてください。

●質問者: 大蘇 蓮風
●カテゴリ:ウェブ制作
✍キーワード:Key Perl STR コード サイズ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● wkbyshnbtk
●60ポイント

>用途としてはサブ・ルーチンに複数の配列リファレンスを渡して、サブ・ルーチン側で配列サイズを取得して処理を加えたいのです。

サイズ、というのが、配列の個数、という意味なら

my $array_count = scalar @data;

ですね。

サブルーチンに

&hoge(\@data);

という感じで渡す場合は、

sub hoge {
 my ($array_ref) = @_;
 my $array_ref_count = scalar @$array_ref;
 print $array_ref_count;
}

という感じでしょうか。


ただ、サンプルのようなコードの場合、配列に入れる意味が感じられません。

ハッシュリファレンスの使い方としては、

my @data;

(ループ1) {
 my $hash_ref = {};
 (ループ2) {
 $hash_ref->{$key} = "$str";
 }
 push @data, $hash_ref;
}
&hoge(\@data);

という感じだと思うのですが。

◎質問者からの返答

ありがとうございます。

実際の使用文脈はアドヴァイスをいただいたのと同じになってます。

おかげで助かりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ