2024-06-21

This commit is contained in:
2024-06-21 14:57:07 +09:00
parent 04caa2eb53
commit e00dd1bfbf
43 changed files with 2689 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
# 참조
PERL에서 참조는 다른 스칼라, 배열, 해시 등을 가리키는 스칼라 타입의 변수입니다. 참조는 스칼라 타입이기 때문에, 배열이나 해시의 구성 요소로 사용될 수 있으며, 이를 통해 다차원 배열 등 복잡한 자료 구조를 만들 수 있습니다.
참조하고자하는 변수 앞에 `\`를 붙이면 해당 변수에 대한 참조가 됩니다. 참조 변수에서 다시 일반 변수를 가져오려면 스칼라 형 앞에 `$`, 배열인 경우에는 `@`, 해시는 `%`, 서브루틴은 `&`를 붙여주면 됩니다.
```perl
my $var = 100;
my $var_ref = \$var;
$$var_ref = $$var_ref * 2;
print "$var\n";
print "$$var_ref\n"; # 또는 ${$var_ref}
print "$var_ref\n";
```
참조 배열의 아이템에 접근하려면 `->[]`를 사용합니다.
```perl
my @array = (1..5);
my $array_ref = \@array;
my $i=0;
for (@$array_ref) {
print "$$array_ref[$i]\n"; # 또는, $array_ref->[$i]
$i++;
}
```
참조 해시의 아이템에 접근하려면 `->{}`를 사용합니다.
```perl
my %ages = ('Charlie'=> 14, 'Steve'=> 37, 'Jane'=> 22);
my $ref = \%ages;
for (keys %$ref){
print "$_ = $ref->{$_}\n";
}
```
## 익명 참조
참조할 변수를 생성하지 않고 직접 참조를 생성하는 것을 익명 참조라고 부릅니다. `()` 데신에 `[]``{}`를 사용해서 선언합니다.
```perl
my $array_ref = [1..5];
my $hash_ref = {'Charlie'=> 14, 'Steve'=> 37, 'Jane'=> 22};
```
## 심볼릭 참조
심볼릭 참조를 사용하려면 `use strict` 옵션을 꺼야합니다.
```perl
my $ref = "var"; # var는 나중에 변수 이름으로 사용될 예정입니다.
$$ref = "Hello";
print "$var\n";
```