The tr suggested failed.
Just to add context, what you said in the chatterbox was "I'm trying to substitute < for | and > for ! and ? for # and % for & in a string and am having trouble." and I suggested tr/|!#&/<>?%/.
However, both that suggestion and the code you showed seem to work fine for me - you will need to show an SSCCE that actually reproduces the problem you're having, and show what output you were expecting, plus any error messages you might be getting. See also How do I post a question effectively?
use warnings; use strict; my $analysis = <<'END_INPUT'; #Result& The percent of births as healthy births has increased in recent years in response to the Healthy Births initiative.:#Approach& The prenatal, birthing, and postpartum parts of the birth process have been changed substantially. We will have a brighter day to look forward to.:#Prospect& If the same old pace of this change continues, it will be a wonderful day. END_INPUT $analysis =~ tr/#/?/; $analysis =~ tr/&/%/; #$analysis =~ tr/|!#&/<>?%/; print $analysis; __END__ ?Result% The percent of births as healthy births has increased in recent years in response to the Healthy Births initiative.:?Approach% The prenatal, birthing, and postpartum parts of the birth process have been changed substantially. We will have a brighter day to look forward to.:?Prospect% If the same old pace of this change continues, it will be a wonderful day.
Update:
Some of the characters may need to be escaped.
Those particular characters aren't special to tr/// (which is not a regex operation) and don't need to be escaped - see perlop.
In reply to Re: problem changing string characters (updated)
by haukex
in thread problem changing string characters
by craigt
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |