use Lingua::EN::Names 'is_name'; # ?? my $string = '123-James-Rubyn2134_docs.pdf'; my @names = grep{ is_name( lc($_) ) } split( /\W+/, $string ); print "Names : @names\n";