Если у меня есть файл, разделенный запятыми длиной 10 числовых строк (например, 0001010101
), и я хочу переформатировать строку, чтобы заменить два последних символа каждой строки буквой, где 01
равно A
, и так что до 26
будет Z
каков лучший способ сделать это в Perl?
Пример содержимого файла:
0109150103,1807111225,0305102306
Выходные данные будут:
01091501C,18071112Y,03051023F
Предположим, я бы разделил строку на массив, а затем оценил каждую, чтобы посмотреть последние 2 цифры с помощью substr и заменить их соответствующей буквой. Хотите знать, какой самый эффективный способ сделать это порок, ищет, если 01
, а затем установить A
, и так далее.
Я бы сделал грубую силу, как:
$data=<file.txt>;
@tokens=split /,/,$data;
while(@tokens)
{
print substr($_,0,7)."A," if(substr($_,8,2)=='01');
print substr($_,0,7)."B," if(substr($_,8,2)=='02');
#.
#.
print substr($_,0,7)."Z," if(substr($_,8,2)=='26');
}