Perl

2014年11月14日 (金)

[Perl]コマンドライン引数の値を得る

$ARGV変数を使う。配列であり、1つ目のコマンドライン引数のインデックスが0で以下続く。

以下をtest.plとして保存、chmodコマンドで実行権限を付与する。

#!/usr/bin/perl
for ($i = 0; $i < ($#ARGV + 1); $i++) {
    printf "%s\n", $ARGV[$i];
}

実行例。

$ ./test.pl
$ ./test.pl A
A
$ ./test.pl A 1
A
1
$ ./test.pl A 1 "2 3"
A
1
2 3

2014年11月13日 (木)

[Perl]コマンドライン引数の個数を得る

$#ARGV変数を使えばよい。ただし、$#ARGVには「コマンドライン引数の個数 - 1」値が入っていることから、個数として判定する場合には1を足した値と評価を必要がある。以下、動作例。

以下をスクリプトをtest.plとして保存する。

#!/usr/bin/perl
printf "\$#ARGVの値               %d\n", $#ARGV;
printf "コマンドライン引数の個数 %d\n", $#ARGV + 1;

実行してみる。

$ ./test.pl
$#ARGVの値               -1
コマンドライン引数の個数 0
$ ./test.pl a
$#ARGVの値               0
コマンドライン引数の個数 1
$ ./test.pl a b c 1
$#ARGVの値               3
コマンドライン引数の個数 4

2014年5月19日 (月)

[Perl]エラーメッセージ「Can't locate Jcode.pm in @INC (@INC contains: /usr/lib/perl5~」

Perlを使おうとしたとき、タイトルのようなエラーメッセージが表示されてスクリプトが動作しないときがある。これは、Jcodeがインストールされていないため。例えばVine LinuxであればパッケージJcode.plとperl-Jcodeをインストールすればよい。

$ su
パスワード(P):(パスワードを入力)
# apt-get install jcode.pl
# apt-get install perl-Jcode

2014年5月18日 (日)

[Perl]エラーメッセージ「Can't locate Jcode.pm in @INC (@INC contains: /etc/perl~」

LinuxでPerlのスクリプトを実行したときにいかのエラーメッセージが出ることがある。

$ ./○○.pl
Can't locate Jcode.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/~) at ./○○.pl line ○.

これはJcodeがインストールされていないときに出るエラーメッセージなのでJcodeをインストールすればよい。例えば、最近のUbuntuであれば以下のようにlibjcode-pm-perlパッケージをインストールすればよい。

$ sudo apt-get install libjcode-pm-perl

2014年5月 4日 (日)

[Perl]エラーメッセージ「Can't locate Jcode.pm in @INC (@INC contains: C:/Perl/site/lib~」

WindowsでPerlのスクリプトを実行したときに以下のようなエラーメッセージが出るときがある。

Can't locate Jcode.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at ○○.pl line ○.
BEGIN failed--compilation aborted at ○○.pl line ○.

これは、Jcodeを使おうとしているのにJcode.pmが無いときに表示されるエラーメッセージ。http://openlab.jp/Jcode/index-j.htmlからJcode.pmをダウンロードして、スクリプトファイル(*.pl)を実行するフォルダーにJcode.pmを置けばよい。