sanket vaidya wrote:
> Hi all,
Hello,
> As a part of one program I need to get the current working directory. So I
> get this using cwd(). I want to replace forward slash (/) by backslash (\)
> in the path which I get because I work on windows.
You shouldn't need to do that.
> Kindly look at the code below:
>
> use warnings;
> use strict;
> use Cwd;
>
> my $current_path = cwd();
> print "$current_path";
>
> $current_path =~ s|/|\|;
That should be:
$current_path =~ s|/|\\|g;
Or:
$current_path =~ tr|/|\\|;
> print "$current_path";
perldoc -q quoting
Found in /usr/share/perl/5.8/pod/perlfaq4.pod
The problem is that those double-quotes force stringification--
t
want them to be strings. Think of it this way: double-quote
expansion is used to produce new strings. If you already have a
string, why do you need more?
If you get used to writing odd things like these:
print "$var"; # BAD
> When I run this I get the below error:
> Substitution replacement not terminated at line 8.
That is because a single backslash escapes the terminating delimiter.
> However if I replace 's|/|\|' with 's////\/' it works.
$ perl -e's////\/'
Search pattern not terminated at -e line 1.
It doesn't appear to work.
> Can anyone tell me why this happens & how to overcome it?
John
--
Those people who think they know everything are a great
annoyance to those of us who do. -- Isaac Asimov
|