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以外の他のメソッドは使えません。