를 사용하는 방법 Saba 에서는 Perl 스크립트

작업입니다. 스크립트가 있에서 프로그래밍 언어 Perl. 그것이 정의하는 몇 가지 기능(Saba). 당신이 필요하 Taipalsaari 이 함수에서 다른 스크립트입니다.

여기에는 예입니다. 스크립트가 있 script.pl 정의하는 Saba header. 이 Saba 패스 문자열이며,그 반환에서 이 문자열 표 헤더가 있습니다. 이 스크립트에서 이 Saba 를 표시하는 데 사용되는 두 개의 headers:

▶ 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 는 것입니다 또한 사용 Saba.

이 솔루션을 복사하여 붙여넣기

간단한다(그러나 나쁜)솔루션을 사본 코드를 잠수함에서 또 다른 스크립트입니다. 이 솔루션 여기에 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/ —디렉토리 Perl 이 검색에 대한 라이브러리입니다. 의 결과는 이 스크립트를 정확하게 전과 같습니다.

지금은 절대적으로 간단하 Taipalsaari 같은 사바에서 또 다른 스크립트입니다. 쓰 스크립트 other.pl거의 동일한으로 script.pl:

#!/usr/bin/perl

use feature qw(say);

use Utils;

say header('three');

이 스크립트를 실행 perl -Ilib/ other.pl 화면에 표시 ## THREE.

솔루션—연결하는 스크립트 코드를 스크립트

다른 솔루션을 사용할 수 있습니다 Saba 에 정의된 스크립트 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. 필요하신 전체를 감싸는 코드 스크립트에 신체 조건에서와 쓰기의 끝에서 스크립트 단위로는 진정한 값:

#!/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.

다른 기사