Good catch on the $ anchor; thank you. Re-reading the original post, I see that either he clarified things or I missed the last sentence the first time I read it. In either case, I think this meets his needs as I now understand them:
#!/usr/bin/env perl
use 5.010; use strict; use warnings;
while(<DATA>){
chomp;
if( /^messages(\.|\.\d)?$/ ){
say "Match: $_";
} else {
say "No match $_";
}
}
__DATA__
messages
messages.
messages.1
messages.txt
messages.12345
To the original poster: since the regex only allows "messages" to be followed by zero or one groupings of "dot" or "dot digit", extensions like ".txt" will not match, so you don't have to do anything special to eliminate them. I also dropped the + qualifier after the digit since you specified that only a single digit after the dot is acceptable.
Aaron B.
Available for small or large Perl jobs and *nix system administration; see my home node.