Skip to content

Latest commit

 

History

History
62 lines (39 loc) · 2.24 KB

perl.md

File metadata and controls

62 lines (39 loc) · 2.24 KB

Perl

> https://qntm.org/files/perl/perl_kr.html

우선은...

  • .pl 확장자를 일반적으로 사용한다. (텍스트 파일)
  • 스칼라($), 배열(@), 해시(%) 세 가지 종류의 변수가 있다. 각각을 고유의 시길(sigil)--앞에 붙는 특수 문자--로 구분한다.
  • 변수는 my 구문으로 선언하며 감싸고 있는 블럭이 끝나거나 그렇지 않으면 파일 끝까지 scope가 지속된다.

스칼라 변수

스칼라 변수에는 다음 값들을 대입할 수 있다.

  • undef (파이썬의 None, PHP의 null)
  • 숫자 (정수/실수를 구분하지 않는다)
  • 문자열
  • 다른 변수에 대한 참조 (reference)

문자열 결합은 . 연산자로 한다.

print "Hello ".$string;
# "Hello world"

불리언(Boolean)

펄에는 boolean이 없다. 만약 스칼라가 if문 안에 있다면 다음과 같은 경우에만 "false"값이 된다.

  • undef
  • 숫자 0
  • 문자열 ""
  • 문자열 "0"

보통 참/거짓은 사실 1/""을 반환하는 것들이다.

Weak typing

스칼라에 대입된 값이 숫자인지 문자열인지 확인하는 것은 불가능하다. 사실 그럴 필요가 없다. 사용할 연산자에 따라 알아서 결정하기 때문이다.

split

함수처럼 보이지만 function이 아니라 연산자(operator)다. 어떤 문자열을 "구분 기호"로 분리하여 배열 속에 차곡차곡 나눠 담는 기능을 한다. @배열 = split /분리자/,$문자열; 형태로 사용

@_ = split; 처럼 분리기호와 분리할 문자열을 생략할 수도 있다. 이 때는 디폴트 변수인 $_의 내용에서 공백을 기준으로 분리한다.

다음의 3개는 동일한 역할을 한다.

@_ = split;
@_ = split / /, $_;
@_ = split ' ', $_;

또한 /\s+/ 이렇게 분리자를 정규표현식으로 지정할 수도 있다.

chomp

  • 마지막 문자가 개행 문자(\n)일 경우, 이를 잘라낸다.
  • 실제로 perl에서는 키보드로 숫자나 문자를 입력받으면 마지막에 자동으로 개행 문자를 삽입하는데, 이런 것들을 파일처리할 때 제거해주기 위해서 사용된다.