高級(jí)函數(shù)

2018-02-24 16:03 更新

上下文與 wantarray

Perl 有三種上下文:空、標(biāo)量、以及列表。

            func(); # void
my $ret   = func(); # scalar
my ($ret) = func(); # list
my @ret   = func(); # list

如果你在子例程或?eval?塊中,你能夠使用?wantarray?來(lái)決定想要的上下文。

以下是處理正則表達(dá)式返回值的上下文例子:

my $str = 'Perl 101 Perl Context Demo';
my @ret = $str =~ /Perl/g; # @ret = ('Perl','Perl');
my $ret = $str =~ /Perl/g; # $ret is true

.....

這些叫區(qū)間操作符,它們能夠幫助代碼處理整數(shù)或字符區(qū)間。

在下例中,@array?是手動(dòng)填充的。這些是等價(jià)的:

my @array = ( 0, 1, 2, 3, 4, 5 );
my @array = 0..5;

當(dāng)用于此種方式時(shí),..?和?...?是等效的。

區(qū)間操作符只能增加。這會(huì)產(chǎn)生一個(gè)空列表:

my @array = 10..1; # @array is empty

如果你想要逆向,要求它。

my @array = reverse 1..10; # @array descends from 10 to 1

你也可以在標(biāo)量上下文中使用區(qū)間操作符,但那超出了本節(jié)的范圍。參閱手冊(cè)頁(yè) 了解細(xì)節(jié)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)