Perlの命名規則

amagamiの実装をしていて、ふと考えた疑問は
「Perlに命名規則は無いのかな?」
というものでした。

そこで、研究室内の方にそれとなく質問してみると、一様に
「好きにやれば良い」
との回答をくださったので、好きに名前をつければ良いか・・・と
PerlにJavaの命名規則を適応していました。
# 私は以前Javaばかり使っていました。

ところが、PerlにJavaの命名規則を適応してもシックリこないのです。
実装上は別に問題は無いのですが、何だか落ち着きません。

そこで、Perlに有名な命名規則が無いのかを調べました。

調べること数分・・・あっさり見つかりました。
これはPerlの公式ドキュメントですね。

Perl style guide

You may find it helpful to use letter case to indicate the scope or nature of a variable. For example:
$ALL_CAPS_HERE constants only (beware clashes with perl vars!)
$Some_Caps_Here package-wide global/static
$no_caps_here function scope my() or local() variables
Function and method names seem to work best as all lowercase. E.g., $obj->as_string().


『上記ドキュメントでオススメ』しているPerlの命名規則をメモ化します。

 1 パッケージ名
  ・英単語をつなげて名づける
  ・英単語の先頭は大文字にする
  Ex、DateTime・XMLLib

 2 パッケージ以外の名前
  ・名前の意味が分かるように英単語を『_』でつなぐ

  2、1 定数
   ・英単語をすべて大文字にする
   Ex、$ALL_CAPS_HERE

  2、2 Package間で用いるGlobal・Staticなもの
   ・英単語の先頭は大文字にする
   Ex、$Some_Caps_Here・$XML_Document_Here

  2、3 my()やlocal()で宣言された関数スコープなもの
   ・Package外や関数外で使用されないもの、のこと
   ・英単語をすべて小文字にする
   Ex、$no_caps_here

  2、3 関数名、メソッド名
   ・すべて小文字にするのが最善
   Ex、$obj->as_string()

Javaとは全然違いますね。やっと命名の謎が解けました。

このメモを踏まえて、Junya Kondo Home Pageを見てみると
今のところ上記のような理解で問題はなさそうです。
# 問題が見つかったら訂正・追記します。

後で探したら、Perl style guideの和訳がありました。
 関数リファレンス -Perl講座[SMART!]

この命名規則にしたがって、明日から、いろいろ書き直しです。

ちなみに、その他のプログラミング作法については
今のところ、迷ったら「プログラミング作法」をめくるようにしています。

プログラミング作法
プログラミング作法


【引用元】
perlstyle - Perl style guide

【関連リンク】
関数リファレンス -Perl講座[SMART!]


投稿者:としのり  日時:23:59:59 | コメント | トラックバック |
blog comments powered by Disqus