Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

character replace

by sandy1028 (Sexton)
on Jun 02, 2009 at 12:21 UTC ( [id://767570] : perlquestion . print w/replies, xml ) Need Help??

sandy1028 has asked for the wisdom of the Perl Monks concerning the following question:

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re: character replace
by eye (Chaplain) on Jun 02, 2009 at 12:54 UTC
    I think you need to take a step back and answer the question, "Why do bare ampersands (&) and HTML/SGML/XML entities co-exist in this file?"

    If the answer is that you are trying to encode characters in the file, then I have two answers for you:

    1. Check CPAN for code to do this for you.
    2. If you feel you need to code this yourself, the first step should be to convert ampersands to the ampersand entity (probably &). At that point, there will no longer be any "bare ampersands" in the file and you may safely proceed with converting other characters to their respective entities.
    If you have some other answer to my question, you need to explain that in your question.
      The problem is if the text in the file contains $text='&bush& The output will be &bush& if the try to replace only &. So I have a added all the entities to a file and convert the only & to &. I have to replace only character '&' and not & Now I used the module
      #!/usr/bin/perl; use HTML::Entities; $to_decode = "&an HTML string - <© TVS>"; $decoded = decode_entities($to_decode); print "original data --> $to_decode\n"; print "decoded data --> $decoded\n";
      The optput will be original data --> &an HTML string - <© TVS> decoded data --> &an HTML string - <© TVS> I want the output be in the form original data --> &an HTML string - <© TVS> How will i do it using the module?
Re: character replace
by Corion (Patriarch) on Jun 02, 2009 at 12:25 UTC

    First you will need to define what the difference is between "the character '&'" and "the entities". Then you will need to write a regular expression that replaces "the character '&'" but not "the entities".

    Of you're talking about HTML, consider the following cases:

    Meier &Cie Muller & Co Dowe, Cheatham &Howe, Attorneys Wallpapers&Paint;
      All the entities are in the text file. If the & exists in a file it should not be replaced, it only & is there then it has to be replaced with &

        That's great. So now you can start writing your code.

        In case you haven't noticed so far, Perlmonks is not a code writing service. You are expected to write your code yourself. We will help you with specific problems you have in your code but we will not write your programs for you.