in reply to Re: Re: Re: Re: Re: Insert at regular increments
in thread Insert at regular increments
I'd saying changing the value of $/ to alter how a file is read in is pretty idiomatic perl, and failing that knowledge there was a link to the perlvar manpage.
I'm quite comfortable with using $/ myself but in the real world not everyone knows perl as well as you or I. Many people, even those who are aware of $/, have never seen it used for fixed length records. My suggestion was to use English;[1]. If it were a one-liner I'd use $/ but in a program which needs to be maintained it is best to type the extra characters in $INPUT_RECORD_SEPARATOR and to add some comments too.
If the records are delimited by 320 character chunks then the code should work as it'll remove any existing newlines then append one.
To show the problem with the solution you provided, consider a record length of 3 characters and the string "abc\ndef" as input. (We'll ignore the fact that the delimiter was actually CRLF as it doesn't make your solution any more correct.) Your code would read in "abc" and append a newline to it. The next loop would read in "\nde" and append a newline to it... etc. Does that explanation make more sense?
-sauoq "My two cents aren't worth a dime.";[1]What's more, use English; was implemented with maintainability in mind. :-P
|
|---|