Files
perl-examples/docs/11_reference.md
2025-02-10 05:29:29 +09:00

1.7 KiB

참조

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";

참조 배열의 아이템에 접근하려면 ->[]를 사용합니다.

my @array = (1..5);
my $array_ref = \@array;

my $i=0;
for (@$array_ref) {
    print "$$array_ref[$i]\n"; # 또는, $array_ref->[$i]
    $i++;
}

참조 해시의 아이템에 접근하려면 ->{}를 사용합니다.

my %ages = ('Charlie'=> 14, 'Steve'=> 37, 'Jane'=> 22);
my $ref = \%ages;

for (keys %$ref){
    print "$_ = $ref->{$_}\n";
}

익명 참조

참조할 변수를 생성하지 않고 직접 참조를 생성하는 것을 익명 참조라고 부릅니다. () 데신에 []{}를 사용해서 선언합니다.

my $array_ref = [1..5];

my $hash_ref = {'Charlie'=> 14, 'Steve'=> 37, 'Jane'=> 22};

심볼릭 참조

심볼릭 참조를 사용하려면 use strict 옵션을 꺼야합니다.

my $ref = "var"; # var는 나중에 변수 이름으로 사용될 예정입니다.

$$ref = "Hello";

print "$var\n";