便利で役立つPerl好きな私🐪

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