こんばんは、
perl
POSIX
use
と書きますが
Netモジュールの場合は、
use
のように ::
を使用します。
qw( ) と ::
違いがあるのでしょうか?
コメント

- 2:ゲスト (BLUEPIXY)
- 2008/10/20 00:54
::
qw
http://www.geocities.jp/KY_webid/perl5/037.html
を読んでみて下さい。
前へ 1 次へ![]()
コメントする
[block]から[/block]までの範囲はブロック表示されます。
部分的に目立たせたい時や、引用などにお使いください。
[code]から[/code]までの範囲は等幅表示されます。
ソースコードや設定ファイルの記述などにお使いください。







両者は全然違う構文要素です。
bar baz)は('foo', 'bar', 'baz')と同じ意味で、use文はリストを渡されると、モジュールを読み込んだ後にモジュール内のimportという名前の関数にこのリストを引数として渡す約束になっています。 POSIX qw(strftime)はPOSIXモジュールを読み込み、strftime関数を現在のパッケージにインポートする(名前を修飾せずに使えるようにする)という意味です。
-f useとタイプすると表示されます(英語ですが)。
::はパッケージ名の区切り文字、qwはリストを生成する演算子です。
Net::Pingは「そういう名前のモジュール」であって、ただそれを読み込んでいるだけです。
ややこしいのですが、パッケージ内の関数などもPackageName::func_nameという修飾名になっていて、文脈によって区別されます。
qw(foo
import関数はどんな処理をしてもいいのですが、大抵のモジュールでは、モジュールを読み込んだ(use文を書いた)パッケージに関数をエクスポートするという処理を行います。
つまりuse
useについての詳細な説明は、コマンドラインでperldoc