Код:
sub freetypo {
my $rep = @_[0];
my $exprs, $preexprs, $exprsn, $preexprsn, $i;
# Load tables
open(TABLE,$freetypo_path.'/exprs.txt') or die "freetypo: can't open $freetypo_path/exprs.txt: $!\n";
while(<TABLE>){
chomp;
if($_ && $_ !~ /^#/){
$exprsn++;
($exprs[$exprsn][0], $exprs[$exprsn][1]) = split(/\t/);
}
}
close(TABLE);
open(TABLE,$freetypo_path.'/preexprs.txt') or die "freetypo: can't open $freetypo_path/preexprs.txt: $!\n";
while(<TABLE>){
chomp;
if($_ && $_ !~ /^#/){
$preexprsn++;
($preexprs[$preexprsn][0], $preexprs[$preexprsn][1]) = split(/\t/);
}
}
close(TABLE);
# Apply preexprs
for($i=1;$i<=$preexprsn;$i++){
$rep =~ s/$preexprs[$i][0]/$preexprs[$i][1]/gse;
}
for($i=1;$i<=$exprsn;$i++){
$rep =~ s/$exprs[$i][0]/$exprs[$i][1]/gs;
}
return $rep;
}