Доброго времени суток.
помогите пож-ста уяснить чего собственно тут задумывалось:
sub line_parser($) {
my($self,$text)=(shift,shift);
$text=~s/\\x0D//g; $text=~s!\\n!!g;
my $pt = $self->{tpldir}.\'/blue.tpl\';
open(D,$pt) or die "cannot read $pt $!"; flock(D,LOCK_EX); seek(D,0,0); local $/ = \'\';
my $line=; flock(D,LOCK_UN); close(D);
my ($n,$v,$tdtxt,$e)=($text=~/§BLUE_LINE_(\\d)\\|(.*)§(.*)§LINE_END_(\\d)§/);
my ($h,$r,$w)=split(/\\|/,$v);
my %lh = ($n => [$tdtxt,$h,$r,$w]);
$line=~s!!$lh{$n}[3]!;
$line=~s!!$lh{$n}[1]!;
$line=~s!!$lh{$n}[2]!;
$line=~s!!$lh{$n}[0]!;
my %H = ($n => $line);
$text=~s!§BLUE_LINE_$n.*§(.*)§LINE_END_$n§!$H{$n}!g;
return $text;
}
и вечер уже, а я всё никак в толк не возьму.
похоже, что тыт задумывалась некая универсальность, но её нет. т.е. это работает если в передаваемой строке есть ОДНА вставка §BLUE_LINE_1|Заголовок1|какой-то текст|50%§
здесь еще какой-то текст
§LINE_END_1§
если две - полная ерунда выводится.
может недописано просто? :(