This is obviously a problem with Windows files used under Unix (I have been through that several times, I know now where it comes from, but the first time it took me a while to figure out). Under Unix, the chomp function removes only the "\n" part of the line end, and the "\r" also present in Windows line ends stay there and put the subsequent characters to the start of the line (overwriting whatever is there). Use this:
chomp $line;
$line =~ s/\r//g;
or
$line =~ s/[\r\n]//g;
Update: Corrected two typos (a silly colon before the g regex modifier and a missing /) in the second regex. Thanks to poj for having pointed out them to me.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|