perlのmapについて

[code]

    my @old = qw( 12 34abc56def 999 );
    my @new  = map { /([a-z]+)/ } @old;
    for my $n ( @new ){ print "[$n]\n"; }
    print scalar @new,"\n";
    
[/code]

上記コードの出力は、以下を期待していたのですが、

[code]

    []
    [abc]
    []
    3
    
[/code]

実行してみると、

[code]

    [abc]
    1
    
[/code]

となります。  
どうしてこのような出力になるのか理解できません。  
（mapの使い方が間違っている？）  
どなたか、解説していただけないでしょうか？

