최고의 펄 참조 튜토리얼 2024년, 이 튜토리얼에서는 참조 만들기,역 참조,순환 참조,참조 함수,를 배울 수 있습니다.
참조는 포인터, 펄 참조가 스칼라 형 변수, 배열, 해시 테이블을 가리킬 수있다 (도 연관 배열이라고도 함) 또는 서브 루틴 프로그램에서 어디서나 사용할 수 있습니다.
정의 된 변수는 \ 앞에 변수 이름, 우리는 같은 변수에 대한 참조를 가져옵니다 :
$scalarref = \$foo; # 标量变量引用 $arrayref = \@ARGV; # 列表的引用 $hashref = \%ENV; # 哈希的引用 $coderef = \&handler; # 子过程引用 $globref = \*foo; # GLOB句柄引用
배열, 우리는 익명의 배열 참조를 사용할 수 있습니다, [] 정의를 사용합니다 :
$aref= [ 1,"foo",undef,13 ];
익명 배열 요소는 여전히 익명의 배열 될 수있다, 그래서 우리는 배열의 배열을 구성하기 위해이 방법을 사용할 수 있습니다, 배열은 모든 사이즈로 구성 될 수있다.
my $aref = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ]
우리는 해시 익명 해시 참조를 사용하여, {} 정의를 사용
$href= { APR =>4, AUG =>8 };
우리는 서브 루틴의 이름을 익명 서브 루틴 참조를 만들 수 없습니다 :
$coderef = sub { print "w3big!\n" };
다음 프로그램을 취소하면 $ @ %이나, 취소의 종류에 따라 사용할 수 있으며, 예이다 :
#!/usr/bin/perl $var = 10; # $r 引用 $var 标量 $r = \$var; # 输出本地存储的 $r 的变量值 print "$var 为 : ", $$r, "\n"; @var = (1, 2, 3); # $r 引用 @var 数组 $r = \@var; # 输出本地存储的 $r 的变量值 print "@var 为: ", @$r, "\n"; %var = ('key1' => 10, 'key2' => 20); # $r 引用 %var 数组 $r = \%var; # 输出本地存储的 $r 的变量值 print "%var 为 : ", %$r, "\n";
결과가 상기 실시 예의 구현 :
10 为 : 10 1 2 3 为: 123 %var 为 : key110key220
만약 변수 타입을 결정할 수없는 경우, 아래의 반환 값을 결정하기 위해REF를 사용하여 다음의 값은 오류가 존재하지 않는 경우는 리턴된다 :
SCALAR ARRAY HASH CODE GLOB REF
다음 예는 다음과 같다 :
#!/usr/bin/perl $var = 10; $r = \$var; print "r 的引用类型 : ", ref($r), "\n"; @var = (1, 2, 3); $r = \@var; print "r 的引用类型 : ", ref($r), "\n"; %var = ('key1' => 10, 'key2' => 20); $r = \%var; print "r 的引用类型 : ", ref($r), "\n";
결과가 상기 실시 예의 구현 :
r 的引用类型 : SCALAR r 的引用类型 : ARRAY r 的引用类型 : HASH
순환 참조는 두 개의 상호 포함 출현에서 인용. 당신은 그렇지 않으면 메모리 누수, 다음 예제로 이어질 것입니다, 사용주의해야합니다 :
#!/usr/bin/perl my $foo = 100; $foo = \$foo; print "Value of foo is : ", $$foo, "\n";
결과가 상기 실시 예의 구현 :
Value of foo is : REF(0x9aae38)
함수 참조 형식 : \ &
참조 함수 호출 형식 & + 참조 이름 만들었다.
다음 예는 다음과 같다 :
#!/usr/bin/perl # 函数定义 sub PrintHash{ my (%hash) = @_; foreach $item (%hash){ print "元素 : $item\n"; } } %hash = ('name' => 'w3big', 'age' => 3); # 创建函数的引用 $cref = \&PrintHash; # 使用引用调用函数 &$cref(%hash);
결과가 상기 실시 예의 구현 :
元素 : age 元素 : 3 元素 : name 元素 : w3big