Мне нужна помощь с настройкой моего Perl-скрипта.
У меня есть входной файл со значениями, разделенными запятыми, например:
to_em,from_em,flags,updated,marks
xtr133823@xra.co.nz#hv,abc@def.com,16,2007-08-18 16:18:50,33
Первая строка - это имена столбцов to_em from_em flags updated marks
, а следующие записи - значения для каждого столбца:
to_em = xtr133823@xra.co.nz#hv
from_em = abc@def.com
flags = 16
updated = 2007-08-18 16:18:50
marks = 33
Я также создаю уникальное значение (MD5) с префиксом "__pkey__
".
Имя каждого столбца начинается с ^E
. Каждое значение начинается с ^A
, включая шестнадцатеричное значение. Запись закончится ^D
.
Я хочу, чтобы конечный выходной файл выглядел так:
__pkey__^Ad41d8cd98f00b204e9800998ecf8427e^Eto_em^Axtr133823@xra.co.nz#hv^Efrom_em^Aabc@def.com^Eflags^A16^Eupdated^A2007-08-18 16:18:50^Emarks^A33^E^D
Но выходит вот так:
__pkey__^Ad41d8cd98f00b204e9800998ecf8427e^E^Ato_em^E^D__pkey__^A5c09354d0d3d34c96dbad8fa14ff175e^E^Axtr133823@xra.co.nz#hv^E^D
Вот мой код:
use strict;
use Digest::MD5 qw(md5_hex);
my $data = '';
while (<>) {
my $digest = md5_hex($data);
chomp;
my ($val) = split /,/;
$data = $data. "__pkey__^A$digest^E^A$val^E^D";
}
print $data;
exit;