Perl

ALL

Perl 예외 처리 eval 사용 방법

펄에서 예외처리는 하는 함수로eval이 있습니다. eval로 블럭을 설정해주고 그 안에서 에러가 발생 한 경우 캐치를 해줍니다. 블럭 설정 eval { ... }; 블럭 안에 처리하고 싶은 소스를 작성해주면 됩니다. 처리중에 에러가 발생해 갑자기 멈추는 경우 에러를 캐치해서 메세지를 출력하던가 다른 처리를 작성해주고 싶은 경우가 있습니다. 나눗셈 샘플을 보도록 하겠습니다. my $div1 = 0; my $div2 = 10; my $divResult; $divResult = $div2/$div1; print "result : " . ...
ALL

Perl 문자열 배열로 변경 SPLIT 사용 방법 예제

펄에서 문자열을 구분자로 자르는 함수로 SPLIT가 있습니다. 구분자를 지정하여 문자열을 잘라 배열로 반환해주는 함수입니다. 사용 방법을 예제를 통해 보겠습니다. 문자열 나누기 SPLIT 함수로 문자열을 자르기 위해서는 구분자를 정규 표현식으로 지정해줍니다. PERL 정규 표현식을 상세한 내용은 아래를 참조해주세요. 문자열을 자르는 예제를 보겠습니다. 예제 use strict; use warnings; use utf8; my $str = 'a,b,c,d,e'; my @arr = split(/,/, $str); print $_ . "...
ALL

Perl 문자열 자르기 SUBSTR 사용 방법 예제

문자열을 자르는 방법으로 함수 또는 정규식을 사용할 수 있습니다. 이번에는 SUBSTR 함수를 사용해 문자열을 자르는 방법을 보겠습니다. 문자열 자르기 SUBSTR(문자열, 시작 위치, 길이) 문자열- 자르고 싶은 문자열을 지정. 시작 위치- 시작 위치 인덱스를 지정. 길이- 자르고 싶은 문자열 길이를 지정.(생략 가능) PERL에서 문자열인덱스는0부터 시작합니다. 예제 use strict; use warnings; use utf8; my $str = "Morning"; my $sub; print "$str¥n"; $sub = su...
ALL

Perl called too early to check prototype 에러

펄 실행 중 called too early to check prototype 에러 메시지가 나오는 경우 원인과 해결 방법을 알아보겠습니다. 에러 내용은 서브 루틴이 프로토타입 체크보다 빨리 호출되었다는 경고입니다. 간단하게 설명을 하면 서브 루틴, 즉 사용자가 작성한 함수보다 호출 부분이 먼저 작성되어 있어서 경고 메시지가 표시되는 경우가 많습니다. 우선 서브 루틴을 사용하여 함수를 만들고 정상적으로 호출되는 경우를 보겠습니다. #! /usr/local/bin/perl # sampleTest.pl use strict; use war...
ALL

Perl for, foreach와 $_ 글로벌 특수 변수 사용 방법 예제

for문 펄에서 반복문을 사용하는 대표적인 방법으로 for와 foreach가 있습니다. for문은 다른 언어와 사용 방법이 똑같습니다. Java나 PHP 등을 먼저 사용해본 경험이 있으시면 Perl에서도 어려움 없이 사용할 수 있습니다. for문 사용 방법 for (my $i = 0; $i < 10; $i++) { print "$i ";  } 실행 결과 0 1 2 3 4 5 6 7 8 9 foreach문 반복문으로 배열이나 해시에 있는 값을 다룰때 많이 사용되는 것이 foreach문 입니다. for는 반복할 횟수를 지정해야 한다면 ...
ALL

Perl caller 사용하여 로그에 함수명 출력

펄을 이용한 프로그램에서 동작 확인을 하기 위해 로그를 출력하는 경우가 대부분입니다. 특히 문제가 발생했을 경우 로그는 중요한 정보입니다. 그중에서도 어디에서 버그가 발생했는지 확인하려고 할 때 함수명까지 로그에 출력 된다면 문제를 찾는데 많은 도움이 됩니다. 하지만 로그에 함수명을 출력하도록 설정하는 경우, 함수 시작 부분에서 로그 파일에 함수명을 출력하도록 직접 함수명을 작성해두면, 나중에 수정이 발생하거나, 함수명이 바뀌었을 때 다시 작업을 해줘야 하는 번거로움이 있습니다. Perl에서는 함수에 관한 정보를 얻을 수 있는 함수...
ALL

Perl 해시 데이터 출력하여 디버그 하기. 4가지 방법

소스를 작성하고 문제가 발생했을 경우에 디버그를 통해 어디에서 문제가 생겼는지 확인을 해야 하는 경우가 있습니다. Perl에서도 디버그를 통해 값을 확인해야 하는 경우에 조금 번거롭습니다. 일반 변수의 경우에는 print를 사용하여 값을 출력하면 되지만 해시 데이터의 경우에는 번거로워집니다. PHP처럼 var_dump()가 있으면 간단하게 해시 데이터를 확인할 수 있을 것입니다. 이번에는 Perl에서 해시 테이터를 출력하는 방법을 알아보겠습니다. print 출력 Perl은 PHP와 다르게 print로 스칼라, 배열, 해시가 모두 출...
ALL

Perl sort 펄 배열 정렬 하기 오름차순, 내림차순

Perl(펄)에서 정렬 하는 기능을 살펴 보겠습니다. 배열이나 해시에 값을 저장하여 사용하는 경우가 많습니다. 단순 배열이나, 해시의 경우를 정렬해야 하는 경우도 있지만 경우에 따라 다차원 배열이나 다차원 해시를 배열 해야 하는 경우도 있습니다. 또는 배열과 해시를 동시에 사용하는 배열이나 해시를 정렬 해야하는 경우도 있습니다. 여러가지 경우를 샘플로 작성하였습니다. 배열 숫자 정렬 my @arr = (3, 2, 8, 6); foreach ( sort { $a <=> $b } @arr ){ print $_, "\n"; } 결과 2 ...
ALL

Perl 문자열 검색과 디렉토리 조작 사용 방법 예제

코멘트 프로그램을 작성할 때에 소스 내용을 알아보기 쉽도록 메모를 남겨두는 경우가 있습니다. 이것을 코멘트 또는 주석이라고 부릅니다. Perl에서는 샾(#)기호로 코멘트를 작성할 수 있습니다. 프로그램이 실행될 때는 무시됩니다. 이것을 이라고 합니다. $data = 'I am a boy' # 데이터를 출력 print $data; 위 코드의 경우 3행을 코멘트로 취급하고 있습니다. 코멘트는 다음과 같이 소스 뒤에 붙여서도 사용할 수 있습니다. $data = 'I am a boy' print $data; # 데이터를 출력 그리고 여러행...