高級函數(shù)

2018-02-24 16:03 更新

上下文與 wantarray

Perl 有三種上下文:空、標量、以及列表。

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

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

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

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?是手動填充的。這些是等價的:

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

當用于此種方式時,..?和?...?是等效的。

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

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

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

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

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號