すぐわかるPerlでPerlを学ぶ(その4)

すぐわかるPerl (Software Technology)

すぐわかるPerl (Software Technology)

第5章

スクリプト起動時に渡される引数

perlスクリプトの起動時に渡された引数が@ARGVという配列に格納されます。
簡単なスクリプトを作って確認してみます。

#!/usr/bin/perl

foreach $argvalue (@ARGV)
{
        print "$argvalue\n";
}


さっそくこれを実行してみましょう。

itotto@www > ./argvtest.pl arg1 ARG2 hikisuu3

arg1
ARG2
hikisuu3

itotto@www >


というわけで、たしかにちゃんと引数を取れてます。めでたし、めでたし。

関数 - eval

evalという関数がありまして、引数を計算してその結果を返すという非常に便利なものです。
これを使った電卓スクリプトを作ります。

#!/usr/bin/perl -w

$evalstr = '';
foreach $argvalue (@ARGV)
{
        $argvalue =~ s/x/*/g;
        $argvalue =~ s/\^/**/g;
        $evalstr = $evalstr.' '.$argvalue;
}
$result = eval($evalstr);
print "$evalstr = $result\n";


変数がいくつか出てきたので念のため,-wオプションも併用してみました。実際に使ってみます。

itotto@www > ./calc.pl 1 + 2 + 3 x 10
 1 + 2 + 3 * 10 = 33

itotto@www > ./calc.pl '( 20 + 4 ) / 6'
 ( 20 + 4 ) / 6 = 4

itotto@www >  ./calc.pl 2/4 + 3/6
 2/4 + 3/6 = 1

itotto@www >  ./calc.pl 2^3 + 1
 2**3 + 1 = 9

itotto@www >


計算結果は正しいようです。こんな感じで計算できます。