関数への引数の渡し方

改めてPerlを勉強し直そうと、オライリーの「初めてのPerl」を読んでいるところ。
一章読んで、練習問題のプログラムを書く、の繰り返し。



以前はざっと読んで、わかったつもりになっていたが、改めて読み直して、まだまだ未熟な自分を知る。
昨日は、こんなことを発見した。


1から1000までの合計を表示させる、っていうシンプルなプログラムをサブルーチンを使って実現するもの。

#!/usr/bin/perl

use strict;
use warnings;

print &total(1 .. 1000) . "\n";

sub total{
  my $sum;
  foreach(@_){
    $sum += $_;
  }
  $sum;
}

よくソースを見てみればなんてことはない気もするんだけど、こんな方法で関数「total」に1〜1000まで数値を渡す、ってことが出来たのか!
Perlの懐の広さに改めて感心した。


そして、自分の未熟さに絶望した。まだまだ頂はちっとも見えてこない。
おかげでやりがいがありまくる。


日々成長を実感できるのは楽しいことです。