#!/bin/perl my $at = (); my $bt = (); my $kl = (); open(IN,"in.srt"); open(OUT,">out.smi"); while($aline=) { if($aline=~/^[\s]*$/) { $delay=0; $at += $delay; print OUT "

\n"; print OUT "$kl"; $bt += $delay; #print OUT "

 \;\n"; } elsif($aline=~/-->/) { $kl = (); ($at,$bt)=split(/[\s]*-->[\s]*/,$aline,2); $bt =~ s/[\s]*$//g; $at = &chg_time($at); $bt = &chg_time($bt); } else { if($kl) { $kl =~ s/[\s]*$//g; $kl .= "
\n"; } $kl .= $aline; } } close(IN); close(OUT); sub chg_time { my ($aline) = @_; my ($a,$b,$c,$d) = split(/[:,\s]+/,$aline); $a = (($a * 60 + $b) * 60 + $c) * 1000 + $d; return $a; }