Sigh - use strict; use warnings;, post a complete sample that demonstrates the problem. As usual, here's a starting point:
use strict;
use warnings;
while (my $line = <DATA>) {
...
}
__DATA__
...
Dodgy stuff in your first post:
$line=; # Just plain wrong!
while ($line=~m/([123]?[.s]*[a-z\=.]+)/oi) # Where does $line get a va
+lue?
$t_book=~s/\l=([a-z]+)\/$1/ig; # The \/ is wrong!
$t_book=~s/<(|/)(B|I|SC|U)>//ig; # The |/ is wrong (and why would you
+want to capture it?)
DWIM is Perl's answer to Gödel
|