0

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;

9
Contributors
14
Replies
25
Views
8 Years
Discussion Span
Last Post by Taywin
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";
0

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

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";
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";

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

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.

0

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

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

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.

0

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

label.text=changingpath.tostring();

it will sure work

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

0

Hi

Can you please tell how it will work if the string $myPath is in double qoutes because the string which u have mentioned it will work fine in only single qoutes but in double qoutes it wont work.

for ex my $myPath = "c:\perl\test";
$myPath =~ s/\/\//g;
expected output : print $mypath;
output :
C:PERLTEST

0

if u want to change /opt/dragon/bin to /opt/dragon/bin/runit do,
perl -p -i -e 's/\/opt\/dragon\/bin/\/opt\/dragon\/bin\/runit/g'

0

1) Old post...
2) You could do it with s/(\/opt\/dragon\/bin)/$1\/runit/g if you want to repeat the matched as a part of the result.

Edited by Taywin

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.