読者です 読者をやめる 読者になる 読者になる

Perlでハッシュやら配列やらの戻り値を参照する方法

ハッシュやら配列やらをサブルーチンで定義して、呼び出し元で参照する際にいつもはまるので、はまらないようにサンプルPGのメモを記載しておく。

※変数名とかは適当ですのであしからず。

use strict;
use warnings;

sub foo {
    my @list = ("aa","bb","cc");
    my $hash = {
        sub_a => "ssss_a",
        sub_b => "ssss_b",
        sub_c => "ssss_c",
    };
    my $ref_hash = {
        str_param => 'hoge',
        list_param => \@list,
        hash_param => $hash,
    };
    return $ref_hash;
}

my $hoge = &foo();

# 文字列表示
print "str_param == ".$hoge->{"str_param"}."\n";

# リストの表示
my @list_out = @{$hoge->{"list_param"}};
foreach my $list_str ( @list_out ){
    print "list_param == ".$list_str."\n";
}

# hashの表示
my $naibu_hash = $hoge->{"hash_param"};
print "naibu_hash_a == ".$naibu_hash->{"sub_a"}."\n";
print "naibu_hash_b == ".$naibu_hash->{"sub_b"}."\n";
print "naibu_hash_c == ".$naibu_hash->{"sub_c"}."\n";