in reply to Re^2: working with relative paths
in thread working with relative paths

chdir has to work or I'll eat my hat, ;-) as it is one of the most fundamental functions. Perhaps if you posted a short but complete example, along with its actual output and the expected result, it would be easier to figure out what's going on.

A couple of tricks that might help: use strict, warnings, and diagnostics; try chdir $direct or die $! to see if there is an error message.

Replies are listed 'Best First'.
Re^4: working with relative paths
by apotheon (Deacon) on Oct 30, 2004 at 03:12 UTC

    First, the code I just used:

    #!/usr/bin/perl -w use strict; my ($direct); chomp($direct = $ARGV[0]); shift @ARGV; chdir($direct) || die "failed to change to directory: $!"; opendir(WORKDIR,$direct) || die "failed to open directory: $!"; closedir(WORKDIR) || die "failed to close directory: $!";

    Next, the output:

    username@computer:~$ perl testchdir.pl music failed to open directory: No such file or directory at testchdir.pl li +ne 9. username@computer:~$
    - apotheon
    CopyWrite Chad Perrin

      You need

      opendir(WORKDIR,".")

      For example, if $direct is "xyz" and you cd xyz, then opendir xyz will operate on xyz/xyz, which is not what you want.

        I knew I was going to feel stupid by the time this question got answered. Thank you. That seems to have solved it.

        - apotheon
        CopyWrite Chad Perrin