A Fine-Tuned Universe

[Perl] 사용자 입력 처리 <>, <STDIN>, chomp 본문

Bioinformatics/Perl

[Perl] 사용자 입력 처리 <>, <STDIN>, chomp

정재준 2022. 12. 28. 14:56
728x90

아래 블로그 내용을 공부하면서 요약한 내용입니다.

자세한 내용은 아래 블로그를 직접 참고해주세요

펄(Perl)의 사용자 입력처리: <> 연산자와 chomp (tistory.com)

 

perl 사용자 입력 처리

1. line input operator

<>
diamond operator 또는 angle operator라고도 함.
이름처럼 행 (line)을 입력받는 연산자이다.
다이아몬드 사이에 파일 핸들을 넣어주면 파일을 한 줄 읽어들인다.


2. STDIN

standard input의 약자로 표준입력이라고 한다.
키보드로 입력한 것 (그 외에 많은 내용이 있다고 한다, 일단은 키보드입력)
표준 입력과 반대되는 것은 standard output입니다.
STDOUT이라고 쓰고 모니터 화면을 가리킨다.
키보드로 입력하고 모니터에 출력하는게 '표준'이다

<STDIN>이라고 하면 키보드로 입력한 것을 한 줄 읽어 들인다.

아래의 코드를 보자

$line=<STDIN>;
print $line;

키보드로 무엇을 입력하면 그대로 다시 출력하는 코드이다.

'한 줄'을 정의해보자
Perl에서 한 줄은 개행문자 (new line character \n)까지를 의미한다.
키보드로 abcde라고 입력하고 엔터키를 눌렀다고 가정하자
이 경우 키보드로 입력한 문자열은 abcde\n이다
엔터키에 의해 줄바꿈이 되었으므로 \n이 붙었다
\n이 등장하면 Perl은 한 줄이 다 입력된 것으로 생각하고 <STDIN>으로 읽어들이는 것을 중단한다.
따라서 $line에는 끝에 \n이 달린 것이다.


3. chomp 연산자


<STDIN>으로 입력된 내용에는 항상 \n이 달려있다
하지만 입력된 값에만 관심이 있다면 \n을 없애주어야 한다.
chomp 연산자가 그 기능을 한다

$line="abcd\n";
chomp=($line);

$line="abcd\n";
$question=chomp($line);
print $question;

이렇게 하면 1이 나온다.
chomp가 성공적으로 \n을 떼어내면 1, 실패하면 0을 반환하기 때문이다

\n을 떼어낸 값을 별도의 변수에 담을 필요가 없다
chomp($line);
만으로 $line에서 \n을 제거한 값이 담긴다.

chomp ($line=<STDIN>);
을 통채로 외우는 게 좋다

<> 처럼 사이에 아무것도 넣지 않은 경우에도 키보드로부터의 입력을 기다리게 된다

LIST

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

[Perl] 숫자비교연산자  (0) 2022.12.30