为了账号安全,请及时绑定邮箱和手机立即绑定

我的($ variableName)和我的$ variableName在Perl中有什么区别?

/ 猿问

我的($ variableName)和我的$ variableName在Perl中有什么区别?

Qyouu 2019-12-06 11:14:52

my ($variableName) 和my $variableNamePerl有什么区别?括号做什么?



查看完整描述

3 回答

?
海绵宝宝撒

重要的影响是在声明变量的同时初始化变量:


my ($a) = @b;   # assigns  $a = $b[0]

my $a = @b;     # assigns  $a = scalar @b (length of @b)

另一个重要的时刻是声明多个变量。


my ($a,$b,$c);  # correct, all variables are lexically scoped now

my $a,$b,$c;    # $a is now lexically scoped, but $b and $c are not

如果您使用最后一条语句,则会给您一个错误use strict。


查看完整回答
反对 回复 2019-12-06
?
守着星空守着你

简短的答案是,括号在列表的左侧使用时会强制列表上下文=。


其他每个答案都指出了在其中有所作为的特定情况。确实,您应该通读perlfunc,以更好地了解函数在列表上下文(而不是标量上下文)中被调用时的行为方式不同。


查看完整回答
反对 回复 2019-12-06
?
MYYA

请查看perdoc perlsub以获取有关该my运算符的更多信息。这是一个小摘录:


概要:


   my $foo;            # declare $foo lexically local

   my (@wid, %get);    # declare list of variables local

   my $foo = "flurp";  # declare $foo lexical, and init it

   my @oof = @bar;     # declare @oof lexical, and init it

   my $x : Foo = $y;   # similar, with an attribute applied


查看完整回答
反对 回复 2019-12-06

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信