код:
#!/usr/bin/perl
my @lines;
#пример строки из исходного текстового файла
push (@lines, "1 Абдряшевская СОШ 453630, д. Абдряшево
1 да Зайнуллин нач. (34772)");
my @array;
push (@array, {pos=>0}, {pos=>5}, {pos=>24}, {pos=>47}, {pos=>56}, {pos=>72}, {pos=>87}, {pos=>99});
#массив цветов
my @colors = (\'green\',\'white\');
#перебираем все строки исходного файла
foreach $i (0..$#lines)
{
#перебираем все столбцы
foreach $j (0..$#array) {
#если это первый столбец, открываем тег <span>
substr ($lines[$i], $array[$j]->{pos}, 0) = \'<span style="background-color:\'.$colors[$j%2].\'">\'
if $j==0;
my $pos = 37 + $array[$j]->{pos} + 44*($j-1);
my $old_line = $lines[$i];
substr ($lines[$i], $pos, 0, \'</span><span style="background-color:\'.$colors[$j%2].\'">\') if $j>=1;
}
$lines[$i] .= "</span>";
#замену пробелов на пока уберём
$page .= $lines[$i];
}
print $page;
exit(0);
результат:
<span style="background-color:green">1 </span><span style="background-color:white">Абдряшевская СОШ </span><span style="background-color:green">453630, д. Абдряшево </span><span style="background-color:white">
1 </span><span style="background-color:green"> да </span><span style="background-color:white"> Зайнуллин </span><span style="background-color:green"> нач. </span><span style="background-color:white"> (34772)</span>