Anyone have any idea how this might be accomplished? :
For a normalization scheme, I have match and replace strings stored in
variables (because they vary, of course) brought in from XML files. The
replace strings depend on what is found in the match string. The problem?
The replacement string is taken literally no matter what variations I've
tried. Some examples:
$data = '[03/12/2002:14:19:50]'; # to become: '2002-03-12 14:19:50'
$match = '\[(\d\d)\/(\d\d)\/(\d{4}):(\d\d):(\d\d):(\d\d)\]';
$replace = '\3-\1-\2 \4:\5:\6';
unless ( $data =~ s/$match/$replace/ )
{
print $data, " failed to replace.\n";
}
else
{
print $data, " replaced!\n";
}
This yields:
\3-\1-\2 \4:\5:\6 replaced!
Not exactly what I'm looking for.
I've tried:
$replace = '$3-$1-$2 $4:$5:$6';
Doesn't work. I've tried it with double-quotes. I've wrapped eval around it
several different ways. I've tried the 'e' option and the 'x' option on the
s/// operator. qr// is only for match strings, it seems. I'm stumped.
I'll have a lot of different replacement strings stored in the schema data
-- a growing collection. So hard-coding them is the last option.
Am I overlooking something simple?
-B...