Snippets

sironekotoro Perl入学式 2018 第3回 復習問題 score.pl 2-2

Created by sironekotoro
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;

# Perl入学式 2018 第3回 復習問題 score.pl
# https://github.com/perl-entrance-org/workshop-2018/blob/master/3rd/practice.md

# 2-2. 言語ごとの平均
# $averageというハッシュリファレンスを新しく作ります.
# このハッシュリファレンスに, 各人物のperl、ruby、pythonの
# 3つのプログラミング言語のスコアの平均値を格納してください。

my $alice = {
    name    => 'Alice',
    country => 'England',
    perl    => 60,
    python  => 80,
    ruby    => 80,
    php     => 50,
    binary  => 30,
};
my $bob = {
    name    => 'Bob',
    country => 'America',
    perl    => 40,
    python  => 10,
    ruby    => 20,
    php     => 30,
    binary  => 50,
};
my $carol = {
    name    => 'Carol',
    country => 'England',
    perl    => 100,
    python  => 70,
    ruby    => 80,
    php     => 50,
    binary  => 50,
};
my $dave = {
    name    => 'Dave',
    country => 'Canada',
    perl    => 60,
    python  => 11,
    ruby    => 1,
    php     => 100,
    binary  => 100,
};
my $ellen = {
    name    => 'Ellen',
    country => 'America',
    perl    => 1,
    python  => 15,
    ruby    => 0.5,
    php     => 60,
    binary  => 0.01,
};

my $average;

# それぞれの人物を表したハッシュリファレンスを集めた配列を作成
my @people = ( $alice, $bob, $carol, $dave, $ellen );

for my $man (@people) {

    # 名前を取得
    my $name = $man->{name};

    # 名前をハッシュリファレンスのkeyに、
    # 3つの言語の平均をハッシュリファレンスのvalueとして格納
    $average->{$name} = ( $man->{perl} + $man->{ruby} + $man->{python} ) / 3;

}

# 確認用Data::Dumper
print Dumper $average;

Comments (0)