my @captures = 'abcde' =~ m[(.){3}]; print "@captures";; c #### my @captures = 'abcde' =~ m[(.)(.)(.)];; print "@captures";; a b c #### 'abcde' =~ m[(.){3}] and print "$1,$2,$3";; Use of uninitialized value in concatenation (.) or string at ... Use of uninitialized value in concatenation (.) or string at ... c,, 'abcde' =~ m[(.)(.)(.)] and print "$1,$2,$3";; a,b,c