Created by sironekotoro 2018-06-17 View revision File score_2_2.pl Added Side-by-side diff More Ignore whitespace Hide word diff +#!/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;