Question can be not so simple as it look from the first sign.
As example not only different OS standards apply but also encoding question can be raised - please fix my comment if I am wrong but (Unicode Standard Annex #14 docs for Unicode 5.1.0) unicode realization try to fix OS new line problem making no differences between CR, LF && CR+LF chars but when see LF+CR (no CR in first place) - think that's 2 newline characters but ASCII interpreter it as one (historically as i understand).
p.s: please give us you input data example + perl code && environment localization information - so we can check at least you situation does not apply to something exotic like: "Tibetan Line Breaking" unicode new line finding algorithm.