in reply to Re^5: Murder of a Perl coder (announced)
in thread Murder of a Perl coder (announced)

I did not ask you to define the hash/collection. I wanted you to show us how does the hashLookup() function look like. If you want a "complete" example so let's define a function that receives a template and a hash containing the values to insert into the template and returns the text with the values:

sub fillTemplate { my ($text, $hash) = @_; $text =~ s/%(\w)%/$hash->{$1}/g; return $text; }

How complex and twisted is the code in C#? Especialy considering the fact that the second parameter for Regex.Replace() is a delegate and that C# doesn't support unnames functions and closures? You have to define the hashLookup() as a fullblown method and you have to find a way to pass it the collection somewhere behind the scenes.

Either it can be a static method and then you'll have a static field in the class that'll hold the reference to the collection. Or you can create a brand new class that'll contain just the hashLookup() method and the reference to the collection. Or do I miss anything?

This is not the difference between Pascals begin-end and C's {}, there I would agree it's just an unimportant matter of verbosity. This is something so awkward, lengthy and unmaintainable that noone can be expected to use regexps. Except maybe for validations.

We'd like to help you learn to help yourself
Look around you, all you see are sympathetic eyes
Stroll around the grounds until you feel at home
   -- P. Simon in Mrs. Robinson