Najlepszy samouczek referencje Perl W 2024 r. W tym samouczku możesz dowiedzieć się Tworzenie odwołań,dereference,okrągłe referencje,Funkcje referencyjne,
Odniesienie to wskaźnik, odniesienie Perl jest typem skalarne mogą wskazywać na zmienne, tablice, stoliki hash (zwany także tablice asocjacyjne) lub podprogram może być używany w dowolnym miejscu w programie.
Zdefiniowanych zmiennych, zmienna nazwa poprzedzona \, mamy odwołanie do zmiennej, takich jak:
$scalarref = \$foo; # 标量变量引用 $arrayref = \@ARGV; # 列表的引用 $hashref = \%ENV; # 哈希的引用 $coderef = \&handler; # 子过程引用 $globref = \*foo; # GLOB句柄引用
W tablicy, możemy użyć anonimowego odniesienie tablicy, użyj [] Definicje:
$aref= [ 1,"foo",undef,13 ];
elementy tablicy anonimowych może wciąż być anonimowy tablicy, więc możemy użyć tej metody do budowy tablicy tablic, tablica może być wykonana z dowolnego wymiaru.
my $aref = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ]
Możemy użyć skrótu anonimowych hash odniesienia, użyj {} definicję:
$href= { APR =>4, AUG =>8 };
Nie możemy utworzyć nazwę podprogramu odniesienie anonimowej procedury:
$coderef = sub { print "w3big!\n" };
Zrezygnować stosowania mogą być wykorzystywane zależnie od rodzaju $ @ lub%, do unieważnienia, przykłady są następujące:
#!/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";
Realizacja powyższego przykładu wynikiem jest:
10 为 : 10 1 2 3 为: 123 %var 为 : key110key220
Jeżeli nie można określić typ zmiennej, można użyćref celu określenia wartości zwracanej wymienione poniżej następujące wartość jest zwracana, jeśli nie ma fałszywe:
SCALAR ARRAY HASH CODE GLOB REF
Przykłady są następujące:
#!/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";
Realizacja powyższego przykładu wynikiem jest:
r 的引用类型 : SCALAR r 的引用类型 : ARRAY r 的引用类型 : HASH
Okrągłe referencje cytowane w dwóch wzajemnie pojawienia włącznie. Trzeba być ostrożnym w użyciu, w przeciwnym razie będzie to prowadzić do wycieków pamięci, następujące przykłady:
#!/usr/bin/perl my $foo = 100; $foo = \$foo; print "Value of foo is : ", $$foo, "\n";
Realizacja powyższego przykładu wynikiem jest:
Value of foo is : REF(0x9aae38)
Format Reference Funkcja: \ &
Funkcja referencyjny Format wywołania: i + nazwa odniesienia utworzony.
Przykłady są następujące:
#!/usr/bin/perl # 函数定义 sub PrintHash{ my (%hash) = @_; foreach $item (%hash){ print "元素 : $item\n"; } } %hash = ('name' => 'w3big', 'age' => 3); # 创建函数的引用 $cref = \&PrintHash; # 使用引用调用函数 &$cref(%hash);
Realizacja powyższego przykładu wynikiem jest:
元素 : age 元素 : 3 元素 : name 元素 : w3big