basic question opendir - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

basic question opendir

Wallace YangWallace Yang Posts: 6Member
Dear Programmers:

Consider code1:
#!/usr/local/bin/perl -s
#
if (opendir(D, "."))
{
print "directory opened";
closedir(D);
}
else
{
print "cannot open directory";
}
which generates the output:
directory opened

Now consider code2:
#!/usr/local/bin/perl -s
#
print "directory: ";
$d = ;
if (opendir(D, "/$d"))
{
print "directory opened";
closedir(D);
}
else
{
print "cannot open directory";
}
When prompted to input $d, I entered:
directory: .
generating the output:
cannot open directory

What am I doing wrong in code2 that's preventing opendir from opening my current directory?

Thanks in advance.

Wallace, the noephyte

Comments

  • JonathanJonathan Posts: 2,914Member
    : $d = ;
    Your $d here has a newline character on the end...

    : if (opendir(D, "/$d"))
    ...which is why this fails.

    Before you do opendir, you need to put this line:

    chomp $d;

    Which will strip any newline character off the end, if it's there.

    Jonathan
    ###
    for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
    (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
    /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");
  • Wallace YangWallace Yang Posts: 6Member
    Thanks, Jonathan.

    : : $d = ;
    : Your $d here has a newline character on the end...
    :
    : : if (opendir(D, "/$d"))
    : ...which is why this fails.
    :
    : Before you do opendir, you need to put this line:
    :
    : chomp $d;
    :
    : Which will strip any newline character off the end, if it's there.
    :
    : Jonathan
    : ###
    : for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
    : (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
    : /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");
Sign In or Register to comment.