為了刪除數組中的元素,在一般位置使用undef$etc是不可行的,除了shift pop在某些特殊位置處理數據,那么如何在Perl數組中刪除某個值?武林技術頻道小編帶你細細道來。
從下面的代碼開始:
?
use Data::Dumper qw(Dumper);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
print Dumper /@dwarfs;
使用Data::Dumper打印時,得到如下輸出:
?
?
?
$VAR1 = [
????????? 'Doc',
????????? 'Grumpy',
????????? 'Happy',
????????? 'Sleepy',
????????? 'Sneezy',
????????? 'Dopey',
????????? 'Bashful'
??????? ];
將元素賦值為undef
?
使用undef()函數的返回值:
?
use Data::Dumper qw(Dumper);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
?
$dwarfs[3] = undef;
?
print Dumper /@dwarfs;
這些代碼會把3號元素(數組中第4個元素)賦值為undef,但是并不改變數組的大小:
?
?
?
$VAR1 = [
????????? 'Doc',
????????? 'Grumpy',
????????? 'Happy',
????????? undef,
????????? 'Sneezy',
????????? 'Dopey',
????????? 'Bashful'
??????? ];
直接對數組的某個元素使用undef()函數也會產生相同的結果:
?
?
?
use Data::Dumper qw(Dumper);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
?
undef $dwarfs[3];
?
print Dumper /@dwarfs;
所以,$dwarfs[3] = undef; 和 undef $dwarfs[3];的作用是一樣的,它們都能把值賦成undef。
?
使用splice從數組移除元素
splice函數會從數組中徹底刪除元素:
?
use Data::Dumper qw(Dumper);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
?
splice @dwarfs, 3, 1;
?
print Dumper /@dwarfs;
$VAR1 = [
????????? 'Doc',
????????? 'Grumpy',
????????? 'Happy',
????????? 'Sneezy',
????????? 'Dopey',
????????? 'Bashful'
??????? ];
如何在Perl數組中刪除某個值?就為各位朋友們總結到這里了,是不是知道應該怎么學習了,只要經過一段時間的學習,大家就會掌握有關的內容。