Perl — удалить из массива несоответствующие условию элементы
Удаляем все элементы, которые не цифры. Работаем с референсом.
#!/usr/bin/perl
use strict;
use Data::Dumper;
my $a = [234235,'a',345,34234,23121];
$a = [grep {/^\d+$/ } @$a];
print Dumper $a;
UPD Rommeech заметил багу, исправил
my $a = [234235,'a',345];
my $a = [grep { $a->[$_] !~ /^\d+$/ } @$a];
«my» variable $a masks earlier
2 раза my не нада писать
Да, спасибо, запечатался что-то :)
У вас ошибка в коде, при my $a = [234235,'a',345, 1, 2, 3]; уже не работает.
Надо:
$a = [grep { /^\d+$/ } @$a];