初めてのPerl第6章ハッシュ 練習問題1

入力した値(名)に応じて、対応した値(姓)を返します。 以下プログラムになります。

#!/usr/bin/perl

use strict;
use warnings;

my @persons = <STDIN>;
chomp(@persons);

my %people = (fred   => 'flintstone',
              barney  => 'rubble',
              wilma   => 'flintstone',
               );
=pod
foreach my $person(@persons){
  printf "$person $peoples{$person}\n";
}
=cut

#もし登録がない人が来たら未登録ですと表示させる。
foreach my $person(@persons){
  if(exists $peple{$person}){
    printf "$person $people{$person}\n";
  }else{
    print "$person is Unregistered\n";
  }
}

プログラムの実行結果は以下のとおりです。

fred
barney
wilma
tom
fred flintstone
barney rubble
wilma flintstone
tom is Unregistered

現在登録してあるのは「fred、barney、wilma」の三人だけなので、入力値「tom」には、未登録のメッセージを返します。