小洪維尼 发表于 2015-12-28 12:16:24

Reference Basic in Perl

Making References
  References 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]
查看完整版本: Reference Basic in Perl