サブルーチンにリファレンスで引数を与えて計算結果をもらう

先輩に、どーやったら早くプログラミングスキルが身に付きますか、と聞いてみた。答えは、「簡単なプログラムをたくさん書いて実際に動かし、仕組みを理解すること」。なので、筋トレのごとく、小さいプログラムを一日3つは書いていきたいと思います。

◎今日の一つ目のお題
100×3+200×5+300×7+400×10+500×11を求めるプログラム。

#! use/bin/perl

use strict;
use warnings;

my @tanka=(100,200,300,400,500);
my @kosuu=(3,5,7,10,11);

print &uriage(\@tanka,\@kosuu);

sub uriage{
    my ($ref_tanka,$ref_kosuu)=@_;
    my $uriage=0;
    my $syoukei=0;
    for my $tanka (@$ref_tanka){
        my $kosuu = shift @$ref_kosuu;
        $syoukei=$tanka * $kosuu;
        $uriage= $syoukei + $uriage;
    }   
    return $uriage;
}

◎ポイント
サブルーチンに与える引数は、スカラーでないとだめ。よって、リファレンスで渡す。