티스토리 뷰
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
- 로드밸런싱
- 개발생산성
- 개발자성장
- 자바개발
- springai
- 프롬프트엔지니어링
- 클린코드
- Java
- 클라우드컴퓨팅
- SEO최적화
- n8n
- 미래ai
- AI반도체
- 프론트엔드개발
- 마이크로서비스
- AI기술
- AI
- 개발자가이드
- 웹개발
- 배민
- 성능최적화
- 업무자동화
- 백엔드개발
- 데이터베이스
- LLM
- restapi
- 웹보안
- 생성형AI
- 인공지능
- 개발가이드
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |