blog20100901

2013/08/20 - プログラミング言語 Perl にまつわる etc. - Perl monger
参考 : perldoc, perldoc.jp, search.cpan.org, perldoc.perl.org ...
「 初めての Perl 第 6 版 」(オライリー・ジャパン発行 ISBN978-4-87311-567-2) 」
「 続・初めての Perl 改訂版 」(オライリー・ジャパン発行 ISBN4-87311-305-9) 」
「 Effective Perl 第 2 版 」(翔泳社発行 ISBN978-4-7981-3981-4) 」 ... etc,.

Perl Perl_0

Perl 「 コメントアウト 」と #! (0x0a)

Perl 「 コメントアウト 」と #! (0x0a)

Perl について、復習を兼ねて断片的な情報を掲載して行く連載その 0x0a 回。

今回は、プログラム中のコメント記述法と、プログラムファイル 1 行目の決まりごと #! について。




プログラム内にコメントを書く



プログラムのコードの中で、補足的にコメントを書きたい場合は、プログラミング言語が指定する書き方をする必要があります。

コメントとして書かれた情報は、プログラムが実行される際に無視されます。

Perl でのコメントは # (Hash mark, Numerical sign : シャープじゃないのか..) で書きます。


#!/usr/bin/perl

# コメント
< 処理 >



#! 1 行目で利用するプログラムを指定する



1 行目の #!/usr/bin/perl はコメントではありません。

Unix システムで、ファイルの 1 行目に #! ではじまる行があった場合、それはそのファイルを実行するためのプログラムを示します。

ここでは、システム内での perl の在りか (システムパス) を指し示しています。場合によってシステムパスは /usr/local/bin/perl かもしれません 。

* 小文字で perl としているのはプログラムを指しているからです。言語として表記するとき (?) は Perl、実行プログラムを指して表記する時は perl という様に使い分けるそうです。Unix システム以外では #! perl とする場合もある様ですが、#! Perl とはしないということです。

つまり、通常 Perl プログラムが書かれたファイルの 1 行目は常に #!/usr/bin/perl (またはこれに類するもの) で始まっている必要があります。

ちなみに、シェル (いわゆるコマンドラインのインターフェース) の機能を利用したスクリプト (シェルスクリプト) を書く場合は、1 行目に #!/bin/sh と書きます。

/sh の部分は /bash だったり、/tcsh だったりしますが、これは、機能を利用したいシェルの種類を指定しているわけです。

  sh (Bourne Shell)
  bash (Bourne-again Shell)
  csh (C Shell)
  tcsh ((TENEX | TOPS-20) C Shell)


当然、そのシステムに該当するプログラムがインストールされていなければ、この記述は意味をなしませんので、うまく動作しない場合はシステム管理者に問い合わせる必要があるかもしれません。

あなたが既にシェル上にいて、シェルのプロンプトが入力を待っているなら、大抵の場合 which という名前のコマンドで、該当のプログラムのシステムパスをすぐに調べることが出来ます。


$ which perl
/usr/bin/perl


コマンド which の説明は以下の通りです。

NAME

which - shows the full path of (shell) commands.

(which - (シェル) コマンドのフルパスを表示します.)


DESCRIPTION

Which takes one or more arguments.

(Which は 取ります ひとつ または より多くの引数を.)

For each of its arguments it prints to stdout the full path of the executables that would have been executed when this argument had been entered at the shell prompt.
(各引数毎に 標準出力に表示します 実行可能なファイルのフルパスを この引数がシェルプロンプトに入力されて実行される際に.)

It does this by searching for an executable or script in the directories listed in the environment variable PATH using the same algorithm as bash(1).
(これは検索を行います 実行可能なファイルまたはスクリプトを 環境変数 PAHT の ディレクトリにリストされた bash(1) と同じアルゴリズムを利用して.)


ということで、Perl のコメントは、文頭に # が必要ですが、プログラムファイルの 1 行目にある #! はコメントではありません。


コメントを加える



以下の例の 3 行目がコメントです。


#!/usr/bin/perl

# コメント
< 処理 >


大抵の場合は次に続く <処理> に対してコメントを書きます。プログラムのソースコードは、通常上から下に、左から右に読むからです。

だからといってこの様にしてはいけません。これでは <処理> も道連れで無視されます。


#!/usr/bin/perl

# コメント < 処理 >


通常、同一行でコメントを付けたい場合は <処理> の後ろ (右側) に加えます。


#!/usr/bin/perl

< 処理 > # コメント



Perl にブロックコメントはないそうです



Perl には「ブロックコメントはない」と説明されていますので、複数行にわたるコメントを書く場合は、すべての行頭に # を付加する必要があります。


# コメント 1 行目
# コメント 2 行目
# コメント 3 行目
< 処理 >


ブロックコメントとは以下の様なものです。これは C 言語の例です。


/* コメント開始
ここはコメント。
ここもコメント。
コメント終了 */


一応 Perl にも、まとまったコメントを書ける pod (Plain Old Documentation) という機能がありますが、本来の用途は Perl ドキュメントを記述して perldoc コマンドで読むためのものだそうです。


=pod
コメント 1 行目
コメント 2 行目
コメント 3 行目
=cut
< 処理 >


pod についての説明は、以下に詳しく書かれています。

  perlpod - plain old documentation

説明
podから何かへのトランスレータはpodファイルを段落毎に読み 込み、それを適切な出力フォーマットへと変換します。段落には verbatim, command, ordinary text の三種類があります。


pod をいわゆるコメント的に使う場合は、一時的な (すぐに削除する) 場面以外の使用は自重した方がいいかもしれません。


0x0a-> 0x0b へ



コード内のコメントは、あんまり無いと困りますが、ありすぎても鬱陶しく感じます。

さじ加減はあなたのセンスに委ねられますが、僕は「コメント無さ過ぎ」よりも「コメントあり過ぎ」の方が良いんじゃないか勢です。それは初心者だからだと思います。

また、コメント付けはとても面倒ですが、セルフ査読として機能してくれるので、間違い探しに役立ってくれたりします。

初心者の内は「ガンガンいこうぜ」の精神でコメントを書いていこうと思います。

参考情報は以下の書籍を中心に Wikipedia および各 Web サイト。それと詳しい先輩。

参考 :「Randal L. Schwartz, brian d foy, Tom Phoenix 共著 近藤 嘉雪 訳「初めての Perl 第 6 版」(オライリー・ジャパン発行 ISBN978-4-87311-567-2)」

次回 (0x0b) へ続く

過去記事 RSS










同じカテゴリー(Perl)の記事
 Perl mp2 翻訳 Web コンテンツ圧縮の FAQ (d228) (2023-10-11 23:49)
 Perl mp2 翻訳 既知のブラウザのバグの回避策をいくつか (d227) (2023-05-26 15:41)
 Perl mp2 翻訳 Perl と Apache でのキュートなトリック (d226) (2023-05-19 17:05)
 Perl mp2 翻訳 テンプレートシステムの選択 (d225) (2022-08-15 22:23)
 Perl mp2 翻訳 大規模 E コマースサイトの構築 (d224) (2022-06-15 20:43)
 Perl mp2 翻訳 チュートリアル (d223) (2022-06-15 20:42)
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

Llama
リャマ
TI-DA
てぃーだブログ
プロフィール
セラ (perlackline)
セラ (perlackline)
QRコード
QRCODE
オーナーへメッセージ

PAGE TOP ▲