使用方法サバからのPerlスクリプト

課題です。 あのスクリプトプログラミング言語Perlです。 であることを定義しま一部機能(鯖). 必要なものTaipalsaariこの機能は他のスクリプト

ここでは一例です。 あのスクリプト script.pl を定義し鯖 header. この鯖パス の文字列を返しますこの文字列を値下げヘッダを表します。 このスクリプトこの鯖 表示させる二つのヘッダ:

▶ Run
#!/usr/bin/perl

use feature qw(say);

sub header {
    my ($string) = @_;

    return '## ' . uc($string);
}

say header('one');
say header('two');

perl script.pl の画面:

## ONE
## TWO

のタスクを他のスクリプト other.pl も用の鯖.

の解決—コピー-ペースト

でんえまき)は、コピーコードを曲の別を記述します。 このソリューションが得られ この other.pl:

#!/usr/bin/perl

use feature qw(say);

sub header {
    my ($string) = @_;

    return '## ' . uc($string);
}

say header('three');

だができるこのスクリプト perl other.pl というよりも、画面のテキスト ## THREE.

このソリューションの問題、これは悪い。 この同じコード 複数のファイルになりにくようなコードです。 時変更する必要がある この鯖にわたっており、変更がいくつかの場所(もうひとつ忘れてはいけないの変更 コードのすべてのファイルを右).

のでサバを別々のモジュール

に正解であるが、サバを別々のモジュールです。 この ファイルを作成し lib/Utils.pm:

package Utils;

use strict;
use warnings;

use Exporter;

our @ISA = qw(Exporter);
our @EXPORT_OK = qw(
    header
);
our @EXPORT = @EXPORT_OK;

sub header {
    my ($string) = @_;

    return '## ' . uc($string);
}

1;
  • package Utils; -と発表した"図書館" Utils
  • use strict; および use warnings; —スイッチモードへのPerlた要求の厳しいの良いコード
  • 5線 EXPORT と接続するとその図書館に必要な機能 header をご用意
  • 移動機能
  • 1; ●パッケージ終了する必要があるの真実

この後の説明の機能に必要なスクリプトから script.pl クリーンが追加接続図書館

#!/usr/bin/perl

use feature qw(say);

use Utils;

say header('one');
say header('two');

そこで同じスクリプトのコマンドを使用して perl -Ilib/ script.pl. のコマンドライン -I パスの値 lib/ —ディレクトリが含ま 検索図書館です。 このスクリプトに従来通りで変更ありません。

現在は絶対になるTaipalsaari同鯖の別を記述します。 書 スクリプト other.plであるのとほぼ同等の script.pl:

#!/usr/bin/perl

use feature qw(say);

use Utils;

say header('three');

このスクリプト perl -Ilib/ other.pl の画面 ## THREE.

溶接続/コンポーネント/英語版のみスクリプトに

が解決でき軒のサバが定義されたスクリプト script.pl にTaipalsaariのスクリプト other.pl. このためには、このテキストのファイル other.pl:

#!/usr/bin/perl

use feature qw(say);

require './script.pl';

say header('three');

スクリプトを実行し perl other.pl ファイル other.pl と同じフォルダとしてのスクリプト script.pl). その結果、

## ONE
## TWO
## THREE

そのときスクリプトを実行し other.pl を作ったすべてのコード た script.pl (ライン ## ONE および ## TWO)、それをコードからスクリプト other.pl (線 ## THREE).

たときにスクリプトを実行し other.pl は行われなかった部分 script.plの 必要がありま少し 変更 script.pl. 必要なものは全体のコードのスクリプト本体下書きのスクリプトの ユニットとしてtrue値:

#!/usr/bin/perl

use feature qw(say);

sub header {
    my ($string) = @_;

    return '## ' . uc($string);
}

if ( not caller() ) {
    say header('one');
    say header('two');
}

1;

その実 perl script.plまでが全く同じ出力として、 ま perl other.plの出力のみとなります希望のテキスト ## THREE.

キーワード caller を返します異なる値によって開始しましたよ スクリプト この機能を使用していまここにスクリプトを実行すると直接 の接続を利用して、スクリプトを require.

その他の記事