Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Path Setting problem

Posted on 2008-06-23
13
Medium Priority
?
207 Views
Last Modified: 2013-12-25
Hi to all,

I am running a perl script under Windows 2003 IIS 6.0 server.In my script i try to read a html file.For that i have use the relative path

my $file="../templates/myfile.html";

But it says the file is not exist,which is existing.But when i use absolute path
(my $file="C:/Inetpub//cgi-bin/elearning/templates/myfile.html";) its working fine.

my wondering is that how do i do that path setting.

Thanks
Rajiv
0
Comment
Question by:imidms
  • 5
  • 4
  • 3
  • +1
13 Comments
 
LVL 85

Expert Comment

by:ozo
ID: 21844350
what command are you executing when it says "the file is not exist"?
you can
chdir "C:/Inetpub//cgi-bin/elearning/templates" or warn "chdir $!";
then ../templates/myfile.html and C:/Inetpub//cgi-bin/elearning/templates/myfile.html should be the same file
0
 
LVL 48

Expert Comment

by:Tintin
ID: 21844378
Assuming your script is a CGI script, then you can not assume that the current working directory of the script is the same location as the script itself.  

With a lot of IIS setups, the current working directory will actually be the document root, rather than the cgi-bin directory.

Try using

my $file="cgi-bin/templates/myfile.html";
0
 

Author Comment

by:imidms
ID: 21844458
I have a perl script in C:/Inetpub/cgi-bin/elearning/query/ directory.My html file which i have to read is placed in C:/Inetpub/cgi-bin/elearning/templates/ directory so if i read the html file i can do

my $file="../templates/myfile.html";
open(FH,$file) or die $!;
my @array=<FH>;
close(FH);
Here it says no file or directory.
But if i change '../templates/myfile.html' to 'C:/Inetpub//cgi-bin/elearning/templates/myfile/html' it is working fine.

Regards
Rajiv

0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 48

Expert Comment

by:Tintin
ID: 21844500
What happened when you tried my suggestion.
0
 
LVL 85

Expert Comment

by:ozo
ID: 21844519
then I suggest you change '../templates/myfile.html' to 'C:/Inetpub//cgi-bin/elearning/templates/myfile/html'


If you want to see where the .. would be starting from
use Cwd;
print getcwd;
0
 

Author Comment

by:imidms
ID: 21845269
Sorry for the late reply,
I have tried your suggestion but it gives the same error

cgi-bin/elearning/adm-temp/elearning_string_temp.html No such file or directory
0
 
LVL 39

Expert Comment

by:Adam314
ID: 21846484
Did you try the suggestion from ozo.  The problem is likely that the working directory is not the same directory the script is in.  The code ozo provided will tell you your working directory.
0
 
LVL 48

Expert Comment

by:Tintin
ID: 21849457
I took a guess at what the current working directory is.  Remember the CGI spec does not guarantee your working directory is where the script is located.
0
 
LVL 85

Expert Comment

by:ozo
ID: 21850719
I'm not sure what the problem is
you have something that works
(my $file="C:/Inetpub//cgi-bin/elearning/templates/myfile.html";) its working fine.
you can set the current working directory to be what you want
chdir "C:/Inetpub//cgi-bin/elearning/templates"
you can find out what the current working directory is
use Cwd;
print getcwd;
what else do you need?
0
 

Author Comment

by:imidms
ID: 21852814
Thank its working
0
 
LVL 48

Expert Comment

by:Tintin
ID: 21852903
What did you do to fix it?
0
 

Author Comment

by:imidms
ID: 21852954
I have found the working directory is /cgi-bin but i did assume that the script directory is a working directory.


So i have changed the directory '../adm-temp/myfile.html'  to 'elearning/adm-temp/myfile.html.

Regards
Rajiv
0
 
LVL 48

Accepted Solution

by:
Tintin earned 200 total points
ID: 21853063
Your working directory is C:/Inetpub//cgi-bin

0

Featured Post

Veeam and MySQL: How to Perform Backup & Recovery

MySQL and the MariaDB variant are among the most used databases in Linux environments, and many critical applications support their data on them. Watch this recorded webinar to find out how Veeam Backup & Replication allows you to get consistent backups of MySQL databases.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article will show, step by step, how to integrate R code into a R Sweave document
Originally, this post was published on Monitis Blog, you can check it here . In business circles, we sometimes hear that today is the “age of the customer.” And so it is. Thanks to the enormous advances over the past few years in consumer techno…
Learn the basics of if, else, and elif statements in Python 2.7. Use "if" statements to test a specified condition.: The structure of an if statement is as follows: (CODE) Use "else" statements to allow the execution of an alternative, if the …
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
Suggested Courses

885 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question