普通、GrADSスクリプトを実行する場合には、まずgradsコマンドを起動してその後で
run hoge.gs
とする必要があり一手間余計にかかってしまう。そこで、Perlスクリプト内で自動化する方法を示す。
#!/usr/bin/perl use strict; use warnings; my $script = 'hoge.gs'; open(PIPE,"|grads -bl") or die "open_error!"; print PIPE "run $script\n"; close(PIPE);
これで、perlスクリプトの実行のみでgradsスクリプトを実行できる。
前項の例では、普通にgradsを起動してスクリプトをrunするのと手間は変わらないが
複数のgradsスクリプトを実行する場合には大幅に手間を軽減できる。
#!/usr/bin/perl use strict; use warnings; my @scripts = glob "hoge*.gs"; foreach my $script (@scripts) { open(PIPE,"|grads -bl") or die "open_error!"; print PIPE "run $script\n"; close(PIPE); }
この例では、正規表現を用いてhoge*.gsのスクリプトを自動で実行していくことができる。
例えば、hoge1.gs, hoge2.gs, hoge3.gsというスクリプトがあったら順次実行される。