[Perl] 파이썬 기초 간단 정리 | 변수 | 데이터 타입 | 특별 변수 | 조건문 | 반복문 | 함수 | 정규표현식 | 파일 입출력

2024. 5. 6. 18:44Perl 펄

반응형

Perl은 유닉스 시스템에서 강력한 스크립트 언어로 텍스트 처리, 시스템 관리, 웹 개발 등 다양한 분야에서 다양한 용도로 활용된다.

 

변수(Variables)와 데이터 타입(Data type)

변수는 세가지 유형이 있다.

  1. 스칼라 변수($): $로 시작하며 스칼라 값을 저장합니다. 예를 들어, $name = "John";
  2. 배열(@): @로 시작하며 여러 값을 순서대로 저장합니다. 예를 들어, @numbers = (1, 2, 3, 4, 5);
  3. 해시(%): %로 시작하며 키-값 쌍을 저장합니다. 예를 들어, %hash = ('key1' => 'value1', 'key2' => 'value2');

 

특별 변수

$_: 기본적으로 사용되는 특별한 변수로, 여러 컨텍스트에서 다양하게 활용된다

@_: 서브루틴의 인자를 저장하는 배열입니다.

 

 

조건문 (Conditional Statements):

  • if, elsif, else 문을 사용하여 조건에 따라 코드 블록을 실행합니다.
if 조건:
    # 조건이 참일 때 실행되는 코드
elif 다른조건:
    # 위의 조건이 거짓이고 다른 조건이 참일 때 실행되는 코드
else:
    # 위의 모든 조건이 거짓일 때 실행되는 코드
if ($age < 18) {
    print "You are underage.";
} elsif ($age >= 18 && $age < 65) {
    print "You are an adult.";
} else {
    print "You are a senior citizen.";
}

 

 

반복문 (Loops):

  • for, foreach, while, until 문을 사용하여 반복 작업을 수행합니다.
for 요소 in 시퀀스:
    # 반복 작업 수행

while 조건:
    # 조건이 참일 때 반복 작업 수행
for my $i (1..5) {
    print "$i\n";
}

foreach my $name (@names) {
    print "$name\n";
}

while ($num < 10) {
    print "$num\n";
    $num++;
}

 

 

함수 (Subroutines):

  • 서브루틴은 코드 블록을 묶어서 재사용 가능한 기능을 만듭니다.
  • def를 사용하여 함수를 정의하고, 필요한 경우 매개변수를 전달할 수 있음
  •  
def 함수이름(매개변수):
    # 함수 내용
    return 결과
sub greet {
    my ($name) = @_;
    print "Hello, $name!\n";
}

greet("John");

 

 

리스트

my_list = [1, 2, 3, 4, 5]  // 여러항목을 담을 수 있는 자료형

 

문자열 다루기

  • 문자열을 인덱싱과 슬라이싱을 통해 다룰 수 있습니다.
my_string = "Hello, World!"
print(my_string[0])  # "H" 출력
print(my_string[7:])  # "World!" 출력

 

딕셔너리

  • 키-값 쌍을 저장하는 자료형입니다.
my_dict = {"name": "John", "age": 30, "city": "New York"}



정규 표현식 (Regular Expressions):

  • Perl은 강력한 정규 표현식을 지원하여 텍스트 처리를 용이하게 합니다.
if ($text =~ m/pattern/) {
    print "Pattern found!";
}

$text =~ s/foo/bar/g; # 문자열에서 foo를 bar로 바꿉니다.

 

 

파일 입출력 (File I/O):

  • 파일을 읽고 쓰는 작업을 수행할 수 있습니다.
open(my $fh, '<', 'input.txt') or die "Cannot open file: $!";
while (my $line = <$fh>) {
    print $line;
}
close($fh);

 


 

반응형