[Perl]



スクリプトにコマンドラインからオプション名と値を渡したい場合にはGetopt::LongモジュールのGetOptions()を利用すると便利です。

[例1 - 引数のないオプション]

オプションの一番簡単な例はオプションによってオンとオフを切り替えることです。

#!/usr/bin/perl
use Getopt::Long;

my $size = 0; #デフォルトでオフの状態

GetOptions(
	'size' => \$size
);

if($size){
print "$size\n";
}


これでスクリプトに--sizeもしくは-sとしてオプションを渡すと$sizeに1が入ります。(オンの状態)

[使用例1]
scriptname.pl --size (もしくは ./scriptname.pl -s)


[出力例1] 1

[例2 - オプションがオンにされた回数のカウント]

--sizeオプションが何回オンにされたかをカウントするには以下のように+マークをオプション名につけます。

GetOptions('size+' => \$size);


scriptname.pl -s -s -s (./scriptname.pl -size -size -size)とすると$sizeの値は3になります。

[例3 - オプションをオフにする]

デフォルトでオプションをオンにしておいて、オフにする機能を与えるにはオプション名の後に!マークをつけます。 これでオプション名にnoをつけることでオプションをオフにすることができます。

my $size = 1; #デフォルトでオプションはオン GetOptions ('size!' => \$size);


scriptname.pl --nosize とすると$sizeの値に0が入り、オフ状態になります。

[例4: 引数を取るオプション] オプション名の後に引数を渡す場合にはオプション名の後に=マークをつけます。=マークに続けてタイプを指定します。

[書式]
GetOptions ('オプション名=タイプ' => \$size);


タイプにはs(文字列)、i(整数)、f(浮動小数点)などを指定できます。 以下の例では--sizeオプションは整数を値として受け取ります。

GetOptions ('--size=i' => \$size);


scriptname.pl --size 24とすると$sizeに24が入ります。

複数の値を取るオプションには値を配列にいれるようにすればOKです。

GetOptions ('--size=i' => \@size);

[例4: 複数のオプション名を設定する]

複数のオプション名を設定するには|で区切ります。

GetOptions ('--size|s=i' => \$size);


#明示的にこうしなくても--sizeと-sは同義ですが・・・

広告
新版Perl言語プログラミングレッスン入門編 新版Perl言語プログラミングレッスン入門編
¥ 2,835 / 売り上げランク: 8432 / 512 ページ

非常に分かりやすい。
今までにも様々な参考書に目を通してきていたが、その中でもこの本かなり読みやすく、丁寧に書かれていた。
初心者には特にお勧め。
初心者以外の方でも軽く目を通す価値はあると思う。

Code Reading―オープンソースから学ぶソフトウェア開発技法 Code Reading―オープンソースから学ぶソフトウェア開発技法
¥ 5,460 / 売り上げランク: 8967 / 523 ページ

CodeCompleteとCodeReadingを併せて読むとよいと、
組込み系のSESSAMEプロジェクトのメーリングリストと、
OS系のTOPPERSプロジェクトのメーリングリストで推薦を受けました。

CodeCompleteは読んだことがあったので、CodeReadingを読んでいます。

オープンソースを仕事にしているので、たいへん役立っています。

MISRA-Cは研修で取り上げてきたので、本書も研修の資料としても取り上げるように準備中です。

初めてのPerl 初めてのPerl
¥ 3,780 / 売り上げランク: 11000 / 379 ページ

いわゆるリャマ本として知られる定番書

初めてのとあるが初心者向きではないと思う。
よくできてはいるが、、。