Perlのハッシュの配列について完全に理解した😁
データ構造について理解を深めるぞい!
Perlでちょっと複雑なデータ構造を扱うときに避けて通れないのが
「配列の配列」「ハッシュのハッシュ」「ハッシュの配列」「配列のハッシュ」といった
リファレンス絡みのものです。イメージしやすい実例があれば、理解も進むのではないか?
ということで書いてみました。
Perlへの愛の告白を、日本各地の方言でランダムにSayする
use strict;
use warnings;
use utf8;
use feature qw(say);
use open IO => qw/:encoding(utf8) :std/;
# use open IO => qw/:encoding(cp932) :std/; # Windowsコマンドプロンプト用
my $love = [
{
city => '北海道',
message => 'Perlのことがなまら好き!',
},
{
city => '岩手',
message => 'Perlのことが好きだっちゃ!',
},
{
city => '宮城',
message => 'Perlのことが好ぎだがら!',
},
{
city => '山形',
message => 'Perlのことが好きだず!',
},
{
city => '茨城',
message => 'Perlのことが好きだっぺ!',
},
{
city => '愛知',
message =>
'Perlのことが、どえりゃぁ好きだもんでよぉ!',
},
{
city => '石川',
message => 'Perlのことがたった好きねん!',
},
{
city => '三重',
message => 'Perlのことが好きなんさ!',
},
{
city => '大阪',
message => 'Perlのことが、やっぱ好きやねん!',
},
{
city => '岡山',
message => 'Perlのことが好きじゃけぇ!',
},
{
city => '高知',
message => 'Perlのことが好きやき!',
},
{
city => '福岡',
message => 'Perlのこと、好いとーよ!',
},
{
city => '宮崎',
message => 'Perlのことが好きやっちゃ!',
},
{
city => '熊本',
message => 'Perlのことが好きばい!',
},
{
city => '鹿児島',
message => 'Perlのことが、ほんのこて好きです!',
},
{
city => '沖縄',
message => 'Perlのことが、めっちゃ好きさー!',
},
];
my $count = @$love;
my $index = int( rand $count );
say "$love->[ $index ]{message}($love->[ $index ]{city})";
=encoding utf8
=head1 love.pl
Perlへの愛の告白を、日本各地の方言でランダムにSayする
=head1 SYNOPSIS
$ perl love.pl
=head1 DESCRIPTION
「ハッシュリファレンスの配列」というデータ構造について理解を深めるためのスクリプト。
「好き」って言葉は最高さ!
=head1 AUTHOR
Kamioka Nobuhiro @inazawa32
=cut