[Chicago-talk] Using a hash in a regex

David H. Adler dha at panix.com
Thu Jul 13 14:17:01 PDT 2006


On Thu, Jul 13, 2006 at 04:01:50PM -0500, Jay Strauss wrote:
> 
> Just to be clear.  I have a bunch of files in a directory.  The filename
> has within it (somewhere) a key(word) like: "income".  I need to
> sequence these files in a specified order.  So I use a hash like:
> 
> %h = (... income=> 13 ...); # the ... are not Perl
> 
> Then I glob my directory and get a filename like:
> 
> $filename = "bank statements used for income.pdf"
> 
> So I change the filename to be:
> 
> "13.bank statements used for income.pdf"
> 
> And then I'm onto the next file

So it looks like what you really want is something like

	$match = join '|', @matchwords;
	    for (@files) {
	    next unless $word = /($match)/;
	    s/(.*)/$h{$word}$1/;
	}

I'm, of course, assuming a lot of things here, like that there will only
be one match per file name, but is that the kind of thing you're looking
for?

dha

-- 
David H. Adler - <dha at panix.com> - http://www.panix.com/~dha/
No sign of any external injury, but I'm afraid he's very dead.
        - Captain Scarlet


More information about the Chicago-talk mailing list