Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^2: Top Seven (Bad) Reasons Not To Use Modules

by JavaFan (Canon)
on Mar 13, 2009 at 10:51 UTC ( [id://750366]=note: print w/replies, xml ) Need Help??


in reply to Re: Top Seven (Bad) Reasons Not To Use Modules
in thread Top Seven (Bad) Reasons Not To Use Modules

A quick search on cpan for "DOS NL" revealed the Text::FixEOL module, "cpan Text::FixEOL" installed it, and 2 lines of perl code implemented it. In less than 5 minutes, my problem was solved.
Wait, you spend a whole five minutes, installed a module when all you need is:
$text =~ s/\R/\r\n/g;
That doesn't really sound as a convincing anecdote.

Replies are listed 'Best First'.
Re^3: Top Seven (Bad) Reasons Not To Use Modules
by dreadpiratepeter (Priest) on Mar 13, 2009 at 14:38 UTC
    You seem to have missed my point: I don't remember what the semantics for newlines are.
    I would have had to do a lot of looking stuff up to come up with that line, and I wouldn't be sure that it covers all cases. In addition, if you look at the module in question, I now have a tool that can also do the reverse translation, do the same for mac eol semantics (which again I have no idea what they are), and will handle all the edge cases properly.

    As a side note, I the negative and dismissive nature of your post to be completely counter-productive to what I hope the Perl monks should be accomplishing. It's wonderful that you know that line of code, but to post so condescendingly because someone else might not, is just rude.
    If you wanted to point out that there is a simple solution to this you could have done so in a much more positive way.
    But, I guess my expectations are too high in a medium where you never have to talk to someone face-to-face as a person.


    -pete
    "Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."
Re^3: Top Seven (Bad) Reasons Not To Use Modules
by Jenda (Abbot) on Mar 13, 2009 at 14:41 UTC

    Erm ... what do you expect the \R to mean? I don't know, maybe it means something in Perl 5.10, but in 5.8 it's equivalent to R. So what you wrote was equivalent to

    $text =~ s/R/\r\n/g;
    probably not what you wanted, right?

    Even though this is not a task that would be too complex, it's not such a no-brainer as you seem to imply. It's not really "convert the internal notion of newlines (\n) to the Windows notion (CR LF)". It's "convert whatever newlines to the Windows newlines". So it should handle not only "\n", but also "\r\n" (windows already) and "\r" (old Mac). You do not want to end up with "CR CR LF", do you?

    I use

    $s =~ s/(?:\x0D\x0A?|\x0A)/\x0D\x0A/sg;
    within Mail::Sender, but if I did not want to waste my time and wanted to be sure I end up with the right line ends without having to study all posibilities, Text::FixEOL looks like a very good candidate.

      Thank you for very elegantly proving my point!


      -pete
      "Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."
      It's "convert whatever newlines to the Windows newlines".
      \R does indeed mean, "whatever newlines".

      Assuming you have upgraded your Perl in the last 5 quarters.

        Ah, I didn't know that. (I guess I would have been better off with the module too, eh?).

        And you didn't even know bears could type.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://750366]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (4)
As of 2024-04-24 18:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found