We're a community of 1077K IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,076,374 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Start New Discussion Reply to this Discussion

Perl: how to replace character '/' with '\'

I am new to perl.
In a string How do I replace a backward slash with a forward slash?
when I call the following perl api $FindBin::Bin; I get the path as follows
$myPath = c:/perl/test
I would like to covert this to
c:\perl\test
I did try the following and get errors
#$myPath=~ tr/\//\/c;

7
Contributors
11
Replies
2 Years
Discussion Span
7 Months Ago
Last Updated
14
Views
Question
Answered
alan_123
Newbie Poster
3 posts since Oct 2009
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0
#!/usr/bin/perl -w
#ReplaceBackslashWithSlash.pl
use strict;

my $myPath = 'c:\perl\test'; # Example string containing backslashes
print "\nOriginal string is: $myPath\n\n";

# The following command substitutes backslashes with forward slashes
# You need to escape the backslash and slash with backslash
$myPath =~ s/\\/\//g;
print "Modified string is: $myPath\n";
d5e5
Practically a Posting Shark
831 posts since Sep 2009
Reputation Points: 162
Solved Threads: 163
Skill Endorsements: 1

Thanks for the replay,
Sorry I made a mistake. the source string is
'c:/perl/test'
would like to convert as
c:\perl\test

alan_123
Newbie Poster
3 posts since Oct 2009
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

Sorry, I read your example wrong. This should do it. Too bad the substitute command uses slashes to delimit the two strings. It confuses me, but it should work this time.

#!/usr/bin/perl -w
#ReplaceSlashWithBackslash.pl
use strict;

my $myPath = 'c:/perl/test'; # Example string containing backslashes
print "\nOriginal string is: $myPath\n\n";

# The following command replaces forward slashes with backslashes
# You need to escape the backslash and slash with backslashes
$myPath =~ s/\//\\/g; #There must be a better way, but I don't know it.
print "Modified string is: $myPath\n";
d5e5
Practically a Posting Shark
831 posts since Sep 2009
Reputation Points: 162
Solved Threads: 163
Skill Endorsements: 1
#!/usr/bin/perl -w
#ReplaceBackslashWithSlash.pl
use strict;

my $myPath = 'c:\perl\test'; # Example string containing backslashes
print "\nOriginal string is: $myPath\n\n";

# The following command substitutes backslashes with forward slashes
# You need to escape the backslash and slash with backslash
$myPath =~ s/\\/\//g;
print "Modified string is: $myPath\n";

why have u not write in 4th and 7th line

rocky martin
Newbie Poster
1 post since Oct 2009
Reputation Points: 10
Solved Threads: 1
Skill Endorsements: 0

Blank lines won't make any difference to how the program runs. Since I'm new to Perl I probably don't have a good sense of style yet. But I was trying to separate my code into three sections: introductory lines that appear in all programs, followed by setting up and printing the test string, followed by modifying and printing the resulting string.

d5e5
Practically a Posting Shark
831 posts since Sep 2009
Reputation Points: 162
Solved Threads: 163
Skill Endorsements: 1

Thank you all for your support

alan_123
Newbie Poster
3 posts since Oct 2009
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0
Question Answered as of 3 Years Ago by d5e5 and rocky martin

no i have no any idea about this. i am thankful to you for this topic. i like it very much.

maaria
Newbie Poster
2 posts since Oct 2009
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

Hey guys I'm stuck. I have been trying to write a sed or perl script to change the below. But each time I run the sed script or perl it completely zeros out the file.

I want to change this
/opt/dragon/bin/runit

to this
cd /opt/dragon/bin; /opt/dragon/bin/runit

dozierc
Newbie Poster
2 posts since Dec 2011
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

Welcome to Daniweb. Please start a new thread to ask your question. When you ask your question in a new thread, it will help if you list the script that you tried. Then maybe someone can advise you why your script didn't give you the result you wanted.

d5e5
Practically a Posting Shark
831 posts since Sep 2009
Reputation Points: 162
Solved Threads: 163
Skill Endorsements: 1

string abc=c:/mit/sss/ss/;
string changingpath=abc.tostring().Replace(@"/",@"\");

label.text=changingpath.tostring();

it will sure work

mitesh.24jain
Newbie Poster
13 posts since Apr 2012
Reputation Points: 0
Solved Threads: 0
Skill Endorsements: 0

BUT how to replace "'" to """.
i mean single coats to double coats???

string abc= "hi my name is 'MITESH'";

I WANT THIS STATEMENT AS

hi my name is "MITESH" PLZ HELP ME

mitesh.24jain
Newbie Poster
13 posts since Apr 2012
Reputation Points: 0
Solved Threads: 0
Skill Endorsements: 0

This question has already been solved: Start a new discussion instead

Post: Markdown Syntax: Formatting Help
 
You
 
© 2013 DaniWeb® LLC
Page rendered in 0.0895 seconds using 2.68MB