# gb1.pl 07.07.21,22 use strict; use HTML::Template; my(%t,$n,$n1,@fld); # Read names open(FH,"biaozhun_name.txt") or die "Can't open the file biaozhun_name.txt.\n"; while(<FH>) { @fld = split; if (/^NAME/ ) { $t{th1} = $fld[1]; $t{th2} = $fld[2]; $t{th3} = $fld[3]; } elsif ( /^SHIP/ ) { $t{ship}{$fld[2]} = $fld[1]; $t{f1} = lc($fld[2]); $t{f2} = $t{f1} . '.txt'; $t{f3} = $t{f1} . '.htm'; $t{name1} = $fld[1] . '(' . $fld[2] . ')'; push(@{ $t{txtfiles} }, $t{f2}); push(@{ $t{htmfiles} }, $t{f3}); push(@{ $t{names} }, $t{name1}); } } close(FH); # Read raw data and input html files for $n ( 0 .. $#{ $t{txtfiles} } ) { my $template = HTML::Template->new(filename => 'std.htm'); my @loop = (); $t{txtf1} = $t{txtfiles}[$n]; $t{htmf1} = $t{htmfiles}[$n]; $t{name1} = $t{names}[$n]; $template->param(CNAME => $t{name1}); open(FH,"./doc/$t{txtf1}") or die "Can't open the file $t{txtf1}.\n"; while(<FH>){ @fld = split; $t{NO1} = $fld[0] . ' ' . $fld[1]; $t{n1} = substr($fld[2],-1); if ( $t{n1} =~ /[0-9]/ or $t{n1} =~ /[A-Z]/) { $t{NO1} = $t{NO1} . ' ' . $fld[2]; $t{n2} = substr($fld[3],-1); if ( $t{n2} =~ /[0-9]/ or $t{n2} =~ /[A-Z]/) { $t{NO1} = $t{NO1} . ' ' . $fld[3]; $t{c1} = $fld[4]; $t{e1} = join(' ',@fld[5..$#fld]); } else { $t{c1} = $fld[3]; $t{e1} = join(' ',@fld[4..$#fld]); } } else { $t{NO1} = $t{NO1}; $t{c1} = $fld[2]; $t{e1} = join(' ',@fld[3..$#fld]); } my %row = ( N1 => $t{NO1}, C1 => $t{c1}, E1 => $t{e1} ); # print $t{NO1},'===',$t{c1},"\n"; # print '===',$t{e1},"\n"; push(@loop, \%row); } close(FH); $template->param(std_loop => \@loop); open(OUT,">$t{htmf1}"); print OUT $template->output; close(OUT); # exit; } __END__