简体   繁体   English

理清这4个模式需要了解perl参考

[英]Need to understand perl reference by clarifying these 4 patterns

I really really don't undertand perl hash.我真的真的不了解 perl hash。 I have been reading perl doc but not able to completely get perl reference.我一直在阅读 perl 文档,但无法完全获得 perl 参考。

For a prime example, can you please tell me the difference between below?举个典型的例子,你能告诉我下面的区别吗?

 @{$table}{$item}
 @{$table{$item}}
 %{$table}{$item}
 %{$table{$item}}

Or is there some general rule that I am missing from not able to decipher these?或者是否有一些我无法破译这些的一般规则?

Please point me to right direction.请指出我正确的方向。 I have been reading perldoc.perl.org..我一直在阅读 perldoc.perl.org..

Just replace the reference-producing block ( {... } ) with an identifier to get a better sense of what you have.只需将引用生成块 ( {... } ) 替换为标识符即可更好地了解您所拥有的内容。

  • @{$table}{$item}
    • Akin to @name{$item}类似于@name{$item}
    • Array slice of the array referenced by $table $table引用的数组的数组切片
    • Can also be written as $table->@{$item}也可以写成$table->@{$item}
    • There's no point to using a slice when there's only one item returned by the index expression.当索引表达式只返回一项时,使用切片是没有意义的。 Should be ${$table}{$item} or $table->{$item} .应该是${$table}{$item}$table->{$item}
  • @{$table{$item}}
    • Akin to @name类似于@name
    • Array referenced by $table{$item} $table{$item}引用的数组
    • Can also be written as $table{$item}->@*也可以写成$table{$item}->@*
  • %{$table}{$item}
    • Akin to %name{$item}类似于%name{$item}
    • Key-value hash slice of the hash referenced by $table $table引用的 hash 切片的键值 hash
    • Can also be written as $table->%{$item}也可以写成$table->%{$item}
  • %{$table{$item}}
    • Akin to %name类似于%name
    • Hash referenced by $table{$item} $table{$item}引用的 Hash
    • Can also be written as $table{$item}->%*也可以写成$table{$item}->%*

See

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM