忍者ブログ

Wordpressメモとかアフィめもとか

Wordpress,PHP,アフィリエイトとかの個人メモを記録していくよ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

perlライブラリ、モジュール

perlでライブラリを使う。
requireとかpmモジュールとかpackage,useとか?

  • 別ファイルを読み込む(require)

[main.pl]

#!/usr/bin/perl

use strict;
use warnings;

require 'func.pl';

print func(1,2);


[func.pl]

use strict;
use warnings;

sub func {
  my $a = $_[0];
  my $b = $_[1];
  return $a + $b;
}


[結果]

$ ./main.pl
3

  • package宣言Ver

[main.pl]

#!/usr/bin/perl

use strict;
use warnings;

require 'func.pl';

print Func::func(1,2);


[func.pl]

package Func;

use strict;
use warnings;

sub func {
  my $a = $_[0];
  my $b = $_[1];
  return $a + $b;
}
1;
 

package Func;で名前宣言し、呼び出すほうは完全修飾名「Func::func()」で呼ぶ。
最後の1はおまじない。(packageは真以外を返さないといけないので)
  • .pmモジュールをuseする。

[main.pl]

#!/usr/bin/perl

use strict;
use warnings;
use Func;

print func(1,2);


[Func.pm]

package Func;

use strict;
use warnings;

use Export;
our @ISA = qw(Exporter);
our @EXPORT = qw(func);


sub func {
  my $a = $_[0];
  my $b = $_[1];
  return $a + $b;
}
1;
 

モジュールはFunc.pm
main側のuseが勝手にFuncのfuncをimportしてくれるので、main.plでfunc()のみで呼び出せる。(完全修飾名の必要が無い)
useをする事は

BEGIN { 
  require Func;
  import Func;
}

がコンパイルの際に1度だけ実行される。
(requireは実行時に解釈)


拍手[0回]

PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

ブログ内検索

最新コメント

広告

プロフィール

なんとなくはじめてみたよ

忍者ツールズプロフィールは終了しました

カウンター