... my $columnID = $column[0]; foreach ( my $columnID ) { while ( $columnID =~ /(^FBgn\d+)/ ) { my $ID = $1; print $ID, "\n"; } } ... #### c:\@Work\Perl\monks>perl -le "use strict; use warnings; ;; my $columnID = 'XXX'; foreach ( my $columnID ) { while ( $columnID =~ /(^X)/ ) { my $ID = $1; print qq{$ID \n}; } } " Use of uninitialized value in pattern match (m//) at -e line 1.