當我們在Perl中用括號聲明一個標量它實際上是什麼意思?有時我們用括號聲明標量變量,有人可以告訴我這是什麼意思嗎?
例子:
#!/usr/bin/perl
my ($x)=10;
print "$x";
當我們在Perl中用括號聲明一個標量它實際上是什麼意思?有時我們用括號聲明標量變量,有人可以告訴我這是什麼意思嗎?
例子:
#!/usr/bin/perl
my ($x)=10;
print "$x";
它迫使分配的右操作數在列表環境進行評估。在你的例子中沒用(因爲10
不關心上下文),但它在其他情況下很重要。
my @a = qw(a b c);
my $count = @a; # 3
my ($first_val) = @a; # a
現在很清楚..謝謝 –
這有幾個不同的用途。一個很常見的方法是在一行中聲明多個變量。
my ($a, $b, $c);
你也可以用它來瓦爾分配到數組索引值
my ($a, $b, $c) = @letters
除了現有的兩個答案,這也是值得注意的是,my
是一個Perl關鍵字的極少數情況下在某些情況下需要括號,就像if
和for
一樣。
如果您想要同時聲明多個變量,則需要parens。
my $foo, $bar; # only declares $foo, will fail under strict if $bar is not there
my ($foo, $bar); # works
用括號使用它也是有用的,如果你想要一個函數分配給新變量的返回值,但你不關心其中的一些。
my (undef, $min, $hour) = localtime;
在這個例子中與localtime
,第一返回值秒被忽略。所有其他值($mday,$mon,$year,$wday,$yday,$isdst
)也被忽略,因爲我們從未分配它們。
這是關於perl調用** context **的**最重要的方面之一。如果您可以獲得一本書:_Learning perl(第6版)_閱讀從第55頁開始的章節:稱爲_Scalar和List Context_。 – jm666