in reply to Re: using chdir($variable_name) to change directory
in thread using chdir($variable_name) to change directory

thanks for the reply sir, i have actully trie every kind of possible path by editing the small.txt file which contains the list of path. i've tried: abc/def/ijk /abc/def/ijk ./abc/def/ijk "abc/def/ijk" all dont work please help thanks

  • Comment on Re^2: using chdir($variable_name) to change directory

Replies are listed 'Best First'.
Re^3: using chdir($variable_name) to change directory
by roboticus (Chancellor) on Jul 06, 2011 at 11:09 UTC

    shridhar22:

    Instead of $1, use $! inside your error messages, and you'll get a more useful error message. If you want a more descriptive error message, add use diagnostics; to the beginning of your program. You may also want to put quotes around the input variable name inside your print statement so you can see if you've properly removed any extra whitespace from the path.

    I also use indentation to clarify my code, so I've put my suggestions in your program to come up with:

    use diagnostics; open(LIST,"small.txt") or die "Can't open small.txt: $!"; @arr= <LIST>; for($i = 0; $i < @arr; $i++) { chomp($arr[$i]); print "path read from file = '$arr[$i]'\n"; #it displays => ms_qu/the/path/written/in/file (fine till here +but it shud go to this place when i use chdir) chdir $arr[$i] or die "Can't change directory: $!"; print "After chdir, cwd is = "; system("pwd"); }

    I haven't tested it, though, so give it a try and see if the error messages give you the information you need to fix it.

    ...roboticus

    When your only tool is a hammer, all problems look like your thumb.

Re^3: using chdir($variable_name) to change directory
by Anonymous Monk on Jul 06, 2011 at 12:12 UTC
    Dear shridhar22, you need to read and understand Re: using chdir($variable_name) to change directory

    Relative paths are relative

    If you're standing in the living room, and ask me for directions to the bathroom and the bedroom, and I tell you:
    the bathroom is first door on the left
    the bedroom is second door on the right

    And you visit the bathroom successfully, and now wish to go to the bedroom, you can't go to the second door on the right!!

    The bedroom, is the second door on the right, only if your starting position is the living room.

    If your starting position is the bathroom, the second door on the right is not the bedroom!

    To find the bedroom by the path "the second door on the right" you have to go back to the living room.

      Dear Tux, i understand what u r trying to explain. im definetely comming back to where i started. sorry i didnt include the full code...which includes coming back to cwd but it still doesnt work.

      use Cwd; $BACK= getcwd(); open(LIST,"small.txt") or die "Cant open small.txt"; @arr= <LIST>; for($i = 0; $i < @arr; $i++) { chomp($arr[$i]); print "path read from file = $arr[$i]\n"; #it displays => ms_qu/the/path/written/in/file (fine till here but +it shud go to this place when i use chdir) chdir $arr[$i] or die "$1"; print "After chdir, cwd is = "; system("pwd"); chdir($BACK); print "Now im back to where i started"; system("pwd"); }
      and thanks for such a nice explanation sir!!