useの種類

perlで、use strict;とかuse Data::Dumper;とかしますよね。useのあとに続く言葉に、大文字で始まったり小文字で始まったりといろいろなので、規則性を調べてみた。

useと書くときは、以下の3種類。
■モジュールをnewするとき。
■モジュールのメソッドをインポートするとき。
■プラグマを使うとき。

さてさて、一体何のことやら。ってことで以下、例です。

■モジュールをnewするとき。
use Data::Dumper;
use LWP;
use CGI;
など、モジュールを使うとき。useしていないと、そのモジュールのメソッドは使えません。(例外あり。次の項。)
■モジュールのメソッドをインポートするとき。(use baseとほぼ同じ)
use File::Temp;                   =>上記のやり方。newしてから各メソッドを使用します。
use File::Temp::tempdir;  =>File::Tempというモジュールのtempdirというメソッドのみ使えるやり方。File::Tempのtempdirというメソッドのみをインポートしている。
■プラグマを使うとき。(プラグマとは、perlの振る舞いを変えるものです。)
use utf8;

ここで、一体この3つのうちのどれなのかどうやって区別をつけたらいいんだ、ってことで以下。

■モジュールをnewするとき。
メソッド名の一文字目は必ず大文字。
::の後の一文字目も必ず大文字。
■モジュールのメソッドをインポートするとき。
モジュール名の部分は、上記のモジュールをnewするときの規則と同じ。
メソッド名の部分は、全部小文字。
■プラグマを使うとき。
全部小文字。

さて、これは、どれに当てはまるでしょう。
use Koma::Home::Gama::Bat::Batch::upload;


→モジュールKoma::Home::Gama::Bat::Batchのuploadというメソッドをインポートしている。Koma::Home::Gama::Bat::Batchのupload以外の他のメソッドは使えません。