Skip to content

Instantly share code, notes, and snippets.

@redtower
Created January 13, 2011 15:10
Show Gist options
  • Save redtower/778004 to your computer and use it in GitHub Desktop.
Save redtower/778004 to your computer and use it in GitHub Desktop.
サブルーチンの戻り値でハッシュを返却する。
use strict;
# 配列
my @array = ('dog', 'pochi', 2);
print $array[1] . "\n"; # pochi
# 無名配列(Anonymous Array)
my $array_ref = ['dog', 'pochi', 2];
print $array_ref->[1] . "\n"; # pochi
# ハッシュ
my %hash = ('kind' => 'dog', 'name' => 'pochi', 'age' => 2);
print $hash{'name'} . "\n"; # pochi
# 無名ハッシュ(Anonymous Hash)
my $hash_ref = {'kind' => 'dog', 'name' => 'pochi', 'age' => 2};
print $hash_ref->{'name'} . "\n"; # pochi
__END__
$ perl anonymous_array_or_hash.pl
pochi
pochi
pochi
pochi
use strict;
use warnings;
my @a = return_array();
print $a[0] . "\n";
print $a[1] . "\n";
sub return_array {
my @array;
$array[0] = 'DATA1';
$array[1] = 'DATA2';
return @array;
}
__END__
$ perl return_array.pl
DATA1
DATA2
use strict;
use warnings;
my $a_ref = return_array_ref();
print $a_ref->[0] . "\n";
print $a_ref->[1] . "\n";
sub return_array_ref {
my @array;
$array[0] = 'data1';
$array[1] = 'data2';
return \@array;
}
__END__
$ perl return_array_ref.pl
data1
data2
use strict;
use warnings;
my %h = return_hash();
print $h{'key1'} . "\n";
print $h{'key2'} . "\n";
sub return_hash {
my %hash;
$hash{'key1'} = 'DATA1';
$hash{'key2'} = 'DATA2';
return %hash;
}
__END__
$ perl return_hash.pl
DATA1
DATA2
use strict;
use warnings;
my $h_ref = return_hash_ref();
print $h_ref->{'key1'} . "\n";
print $h_ref->{'key2'} . "\n";
sub return_hash_ref {
my %hash;
$hash{'key1'} = 'data1';
$hash{'key2'} = 'data2';
return \%hash;
}
__END__
$ perl return_hash_ref.pl
data1
data2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment