Perl 中的 `->` 语法是什么意思?

发布于 2024-12-16 10:34:11 字数 198 浏览 1 评论 0 原文

chdir($g_var->{g_loc});

我在我正在使用的一些 Perl 代码中发现了这一行,但我无法弄清楚 -> 的含义。我的意思是我找不到语法的含义。顺便说一句,g_loc 是文件夹的名称。我在这里缺少什么?

PS,我刚刚接触 Perl 4 天

chdir($g_var->{g_loc});

I found this line in some perl code I am working with and I could not figure out what the -> means. I mean I cant find the meaning of the syntax. By the way, g_loc is the name of a folder. What am i missing here ?

P.S. i am only 4 days into perl.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

忘羡 2024-12-23 10:34:11

-> 正在解除对引用的引用。 $g_var 包含对 %hash 的引用(您可以使用 $hash{key} 访问其中的元素)。

您可以在 perlreftutperlref 文档中找到有关引用的更多信息。还有关于列表列表(嵌套引用)的perllol

您可以使用 perldoc perlreftut 等打开文档。

-> is dereferencing a reference. $g_var contains a reference to a %hash (elements of which you'd access using $hash{key}).

You can find more information about references in the perlreftut and perlref documentation. There's also perllol about lists-of-lists (nested references).

You can open the documentation using perldoc perlreftut, etc.

南冥有猫 2024-12-23 10:34:11

如果您在 perlop(perl 运算符),就会得到以下结果http://perldoc.perl.org" rel="nofollow noreferrer">http://perldoc.perl.org。 Perldoc,它的在线版本已经进行了重大改进,坦率地说,从所有参考文档来看,我最喜欢这个。

->”是一个中缀取消引用运算符,就像在 C 和 C++ 中一样。如果右侧是 [...]{...}(...) 下标,则左侧必须分别是对数组、散列或子例程的硬引用或符号引用。 (或者从技术上讲,如果它是用于分配的数组或散列引用,则能够保存硬引用的位置。)请参阅 perlreftutperlref

否则,右侧是方法名称或包含方法名称或子例程引用的简单标量变量,左侧必须是对象(受祝福的引用)或类名称(即包名)。请参阅 perlobj

This is what you get if you search for perlop (perl operators) on http://perldoc.perl.org. Perldoc, the on-version of it has undergone major improvements and frankly from all reference doc I like this the best.

"->" is an infix dereference operator, just as it is in C and C++. If the right side is either a [...] , {...} , or a (...) subscript, then the left side must be either a hard or symbolic reference to an array, a hash, or a subroutine respectively. (Or technically speaking, a location capable of holding a hard reference, if it's an array or hash reference being used for assignment.) See perlreftut and perlref.

Otherwise, the right side is a method name or a simple scalar variable containing either the method name or a subroutine reference, and the left side must be either an object (a blessed reference) or a class name (that is, a package name). See perlobj.

放低过去 2024-12-23 10:34:11

$g_var 是对哈希值的引用。 指针仅仅是查找语法,定位“g_loc”哈希条目。

如果 %g_var 是哈希而不是哈希引用,则与 $g_var{g_loc} 相同。

$g_var is a reference to a hash. The pointer is merely the lookup syntax, locating the "g_loc" hash entry.

It's the same as $g_var{g_loc} if %g_var were a hash rather than a hash ref.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文