오늘은 Perl의 데이터 구조에 대해 설펴보도록 하겠습니다. Perl의 주요 데이터 구조인 배열(Array), 리스트(List), 해시(Hash)에 대해 정리해 보고 코드를 통해 실제 적용하는 방법도 정리해 보도록 하겠습니다.
Perl 데이터 구조
배열 (Array)
배열은 Perl에서 순서대로 데이터를 저장하는 리스트입니다. 간단하게 생각해 보면, 여러 개의 데이터를 순서대로 나열하고 싶을 때 배열을 사용합니다.
배열은 @
기호를 사용하여 선언하며, 대괄호([]
)가 아닌 괄호(()
)를 사용하여 초기화합니다.
# 배열 선언 및 초기화
my @fruits = ("apple", "banana", "grape");
# 배열의 요소 접근
print $fruits[0]; # 출력: apple
# 배열의 전체 출력
foreach my $fruit (@fruits) {
print "$fruit\n";
}
@fruits
배열을 선언하고"apple"
,"banana"
,"grape"
라는 세 가지 과일 이름을 담았습니다.- 배열의 인덱스는 0부터 시작하며,
$fruits[0]
은 배열의 첫 번째 요소인"apple"
을 의미합니다. foreach
문을 사용하여 배열의 모든 요소를 순서대로 출력할 수 있습니다.
리스트 (List)
리스트는 배열과 유사하지만, 메모리에 저장되는 방식에서 차이가 있습니다. 간단히 말해서, 리스트는 일시적으로 사용되며 주로 함수의 인자로 전달되거나 빠르게 조작될 데이터를 표현할 때 유용합니다. 리스트는 별도로 선언되지 않으며, 직접 사용할 수 있습니다.
# 함수에서 리스트 사용
display_items("pen", "pencil", "eraser");
sub display_items {
my @items = @_;
foreach my $item (@items) {
print "$item\n";
}
}
display_items
함수는 리스트를 인자로 받아 출력합니다.@_
는 함수에 전달된 인자들을 의미합니다.- 리스트는 간단하게 여러 값을 함수로 전달하거나 처리할 때 유용하게 사용됩니다.
해시 (Hash)
해시는 키와 값으로 이루어진 데이터 구조입니다. 배열이 순서대로 데이터를 나열한다면, 해시는 데이터를 키-값 쌍으로 저장하여 특정 데이터를 더 효율적으로 찾을 수 있게 해 줍니다. 해시는 %
기호로 선언합니다.
# 해시 선언 및 초기화
my %ages = (
"Alice" => 25,
"Bob" => 30,
"Carol" => 22
);
# 해시의 값 접근
print $ages{"Alice"}; # 출력: 25
# 해시의 전체 키와 값 출력
while (my ($name, $age) = each %ages) {
print "$name is $age years old.\n";
}
%ages
와 같이 선언하며,"Alice" => 25
와 같은 형태로 키와 값을 연결합니다.- 특정 키에 접근할 때는
$ages{"키"}
와 같은 방식으로 접근합니다. each
를 사용하면 해시의 모든 키와 값을 순서대로 접근할 수 있습니다.
배열과 해시의 조합
Perl에서는 배열과 해시를 함께 사용하여 더 복잡한 데이터를 저장할 수 있습니다. 예를 들어, 배열을 해시의 값으로 사용하거나 해시를 배열의 요소로 사용할 수 있습니다.
# 배열 안에 해시 사용
my @people = (
{ name => "Alice", age => 25 },
{ name => "Bob", age => 30 }
);
# 배열의 요소 접근
foreach my $person (@people) {
print "$person->{name} is $person->{age} years old.\n";
}
@people
은 각 요소가 해시인 구조입니다. 이를 통해 각 사람의 이름과 나이를 저장할 수 있습니다.$person->{name}
과 같은 문법으로 해시의 값을 접근할 수 있습니다.
'프로그래밍 언어 > Perl' 카테고리의 다른 글
Perl 입출력 기본부터 활용까지 파일 모드와 예제 코드 - Perl #6 (0) | 2024.11.26 |
---|---|
Perl 프로그래밍 문자열 처리 및 정규 표현식 - Perl #5 (0) | 2024.11.25 |
Perl 프로그래밍 제어 구조, 조건문과 반복문 - Perl #3 (0) | 2024.11.23 |
Perl 프로그래밍, Hello World!부터 데이터 타입까지 - Perl #2 (0) | 2024.11.22 |
Perl 프로그래밍 언어에 대해 알아보자. 개요부터 설치까지 - Perl #1 (0) | 2024.11.21 |