use strict; no warnings; my @data = (1,2,3,undef,4,5); for (@data) { /(\d+)/; print $1 if $1; } print "\n"; for (@data) { my ($numb) = $_ =~ /(\d+)/; print $numb if $numb; } print "\n";