Reference Basic in Perl
Making ReferencesReferences can be created in several ways.
By using the backslash operator on a variable, subroutine, or value. (This works much like the & (address-of) operator in C.) This typically creates another reference to a variable, because there's already a reference to the variable in the symbol table.But the symbol table reference might go away, and you'll still have the reference that the backslash returned.Here are some examples:
[*] $scalarref = \$foo;
[*] $arrayref= \@ARGV;
[*] $hashref = \%ENV;
[*] $coderef = \&handler;
[*] $globref = \*foo;
Using References
That's it for creating references.By now you're probably dying to
know how to use references to get back to your long-lost data.There
are several basic methods.
[*]Anywhere you'd put an identifier (or chain of identifiers) as part of a
variable or subroutine name, you can replace the identifier with a
BLOCK returning a reference of the correct type.In other words, the
previous examples could be written like this:
[*] $bar = ${$scalarref};
[*] push(@{$arrayref}, $filename);
[*] ${$arrayref} = "January";
[*] ${$hashref}{"KEY"} = "VALUE";
[*] &{$coderef}(1,2,3);
[*] $globref->print("output\n");# iff IO::Handle is loaded
页:
[1]