http://www.perlmonks.org?node_id=320366

svsingh has asked for the wisdom of the Perl Monks concerning the following question:

I have a directory with about thirty text files. I was trying to find an acronym in the directory, but I didn't really remember what it was (other than it was a four letter word starting with M).

I tried a few one-liners, but none of them worked. Since I was just trying to find something really quickly, I decided to punt and just write a script to do what I wanted.

Now I'm trying to learn more about one-liners (I don't have any experience with them) just so I can handle this situation a bit better next time it comes up.

I should also note that I'm doing this from a Windows command prompt.

Here are some of the one-liners that I tried (in a for loop, single file example shown here):

And finally, here's the subroutine that actally did what I wanted:

my @files = <*.txt>; undef $/; foreach (@files) { open ( FH, $_ ); my $txt = <FH>; close ( FH ); while ( $txt =~ m/(M[A-Z]{3}) /gs ) { print " $1\n"; } }

Is there a way to do something like this as a one-liner? If so, then can I incorporate the glob into the one-liner? Thanks for your help.

janitored by ybiC: Prepend tile wit "One-liner" for searchability