티스토리 뷰

DEV/Perl

Package

초록매실원액 2015. 12. 11. 13:07

Package

  • 같은 이름의 변수나 서브루틴을 구별

  • 서로의 구역을 나누고 구역 안에서 각각의 일을 처리한다.

  • 하나의 파일에 복수의 Package선언 가능

Package 생성

  • Package packageName;

Ex) package pack1;

  • Package 선언하지 않은 경우 main package 설정

Package 사용

  • 상이한 package 변수 또는 서브루틴 접근

  • Ex)print "$pack1::number \n";
  • Ex)&main::func();

 

Package 효율성

  • Namespace문제를 해결



변수의 범위


변수의 종류

  • Lexical variable

    • 변수의 범위 : 변수가 선언된 Lexical 영역의 내부

    • My 붙여서 기술한 변수

    • My $my_var;

  • Global variable == package variable

    • 변수의 범위 : 모든 Lexical영역

    • 기본적인 변수, our 붙여서 기술한 변수

    • our $out_var;

    • {}안에서 설정된거는 pack 통해 접근

  • Local variable

    • 변수의 범위 : 변수가 선언된 Lexical 영역의 내부 호출된 Lexical영역 내부

    • local 붙여서 기술한 변수

    • local $local_var;


Lexical Scoping

  • Code block{}안에 있는 영역을 의미

  • 각각의 서브루틴도 lexical영역에 해당

Package

  • Package 변수의 영역을 나누지 않음
  • 단순한 namespace 나눔

엄격한 문법 체크

use strict;      #엄격한 문법 체크

use warnings #잔소리 추가



  • 라이브러리와 모듈 == like headfile

사용자들이 프로그램을 쉽게 작성할 있도록 정의된 변수 서브루틴


  • 라이브러리 작성

    • 라이브러리 확장자는 pl(perl library) 하고 파일 끝에 1;이라고 명시
    • 라이브러리를 불러오기 위해서는 require함수 사용       

  • 모듈 작성

    • 모듈 확장자는 pm(peal module) 으로 하고 파일 끝에 1;이라고 명시
    • 모듈을 불러오기 위해서는 use함수 사용                  
    • 모듈은 require함수로도 읽을 있다.
    • 파일에는 package filename 으로 사용 일반적인 관례 

  • 지금은 모듈을 많이 사용



'DEV > Perl' 카테고리의 다른 글

OOP  (0) 2015.12.21
정규표현식(Regular Expression)  (0) 2015.12.14
Subroutine (=함수)  (0) 2015.12.11
제어문  (0) 2015.12.11
Reference  (0) 2015.12.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함