Perl は 1 行コマンド として 実行する場合 (例 1.1: hello world を印刷)
% perl -e 'print "hello world \n"'
と、file に 保存してその file を 実行する場合があります。以下では file に保存する場合を説明します。
perl の file は、おしりに .pl という 識別子をつけます。file は、~/bin という directory に mule で 作成します。mule の使 い方は別なところで勉強してください。
#!/usr/local/bin/perl print "hello world \n"; # hello world を 印刷します。
注: perl がある場所が /usr/local/bin にあることを仮定してい ます。% which perl として、perl のある場所が違う場合には直す 必要があります。電通大の教育系では
#!/opt/CSapp/bin/perl
に第 1 行を置き換えてください。
perl の 文の終りには セミコロン ; をつけなければいけなせん。 エラーになります。セミコロン がないと、Perl は次の行に文章が 続くと期待し、2 つの文章がつながったものを理解しようとします のでエラーになります。まず エラー が発生したら、セミコロン ; がついていないか確認してみて下さい。
p1-1.pl は、このままでは実行できません。unix の コマンド chmod を用いて実行可能にします。
% ls -l p1-1.pl file が あることを確認します。 -rw-r--r-- 1 rsaito 89 Sep 6 11:13 p1-1.pl % chmod 755 p1-1.pl 実行可能にします。 % ls -l p1-1.pl 実行可能であることを確認します。 -rwxr-xr-x 1 rsaito 89 Sep 6 11:13 p1-1.pl*x がついて 実行が可能になりました。ここで file 名をいれると 実行します。
% p1-1.pl hello world %
hello worldと印刷するにはどのようにしたらよいか?
答:
#!/usr/local/bin/perl print "hello\nworld \n"; # hello world を 2行に印刷します。
-------EJJ:-----Mule: a.plのように最初が E なら ok です。J は JIS 、S は Shift JIS コードを示します。 file.pl (これが何のコードであっても良い) を EUC コードに直すには、
% nkf -e file.pl >! tmp % mv tmp file.pl % chmod +x file.plで file を EUC コードに直す必要があります。直ったかどうかは mule で確認して下さい。