Perl入学式復習問題2013-4-1

直近のPerl入学式(第4回in東京)が終わった頃からずっとどピークだった仕事がやや収まりつつあるので、リハビリがてら一個だけやった。

復習問題全体はこちら。
https://github.com/note103/perl_entrance/blob/master/2013_4/calc.pl

今回の問題はこのような。

2つの数値を引数として, add, sub, mul, div, mod といった key に演算結果を代入し, そのハッシュリファレンスを返り値とするような関数 calc を作成してください.

この「add」とか「sub」とかが足し算とか引き算とかのことだとわかるまで小一時間・・いや数分ですがしばらくわからず検索して理解しました。いろいろ勉強になる!

で、回答はこのような。

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

sub calc {
    my ($num1, $num2) = @_;
    my $add = $num1 + $num2;
    my $sub = $num1 - $num2;
    my $mul = $num1 * $num2;
    my $div = $num1 / $num2;
    my $mod = $num1 % $num2;
    my $results = {
        add => "$add",
        sub => "$sub",
        mul => "$mul",
        div => "$div",
        mod => "$mod",
    };
    return $results;
}

my $var = calc(6, 3);
print Dumper $var;

出力結果。

$VAR1 = {
          'div' => '2',
          'sub' => '3',
          'add' => '9',
          'mul' => '18',
          'mod' => '0'
        };

どうでしょうか・・。

関係ないですがこの1〜2本は久しぶりにhateblo.vimで書いてます。便利&ラク!
https://github.com/moznion/hateblo.vim