in reply to read and link !

Try :
use strict; my $dir = "c:\\temp\\"; opendir (DIR, $dir) or die "Unable to open dir $dir : $!"; my @files = readdir(DIR) or die "Unable to readdir $dir : $!"; closedir DIR; for (@files) { print "$_\n" }
Substituting $dir for your pathname!

Replies are listed 'Best First'.
Re: Re: read and link !
by theguvnor (Chaplain) on Oct 29, 2002 at 15:42 UTC
    my $dir = "c:\\temp\\";

    For the benefit of any who might not know: You don't need to use backslashes when running on a Windows machine; Perl will do the right thing and convert a forward-slash path delimiter to the appropriate delimiter for whatever platform it's running on. That way you don't have to backslash escape your backslashes. You can just write:

    my $dir = "c:/temp/";

    which is just a little easier and less error prone, not to mention makes your programs a little less platform-specific. : )

    Jon

      Actually, it's not perl that does it. Forward slashes are recognized by Windows as equivalent to backslashes for purposes of path delimiting. It's only certain of the windows-based programs -- including the braindead command shell! -- that insist that forward slashes are only for indicating command-line options.
      Thanks for the tip!
      I can see it is useful in this and most other cases, but would it cause a problem if I wanted to concatenate $dir back with $_ and use it in a system call to DOS?
      i.e. Perl likes /, but does DOS?
Re: Re: read and link !
by Anonymous Monk on Oct 29, 2002 at 15:53 UTC
    thank you for your help, but now how can create a link in my html page with @files ??? example: the folder is c:\temp the file is pippo.tif how can create ??? thank you claudia
      i'm sorry but i have lost a part of question: example: the folder is c:\temp - the file is pippo.tif. I need to create a href ..... of all files in $dir how can create ??? thank you claudia
        my $dir = '/path'; # the directory to list my $url = 'http://blah/path'; # the url for that directory opendir DIR, $dir or dir $!; my @links = map { qq(<a href="$url/$_">$_</a>) } readdir DIR; use CGI qw(ul li); print ul(li([@links]));
        --
        <http://www.dave.org.uk>

        "The first rule of Perl club is you do not talk about Perl club."
        -- Chip Salzenberg

      Try replacing the print statement above with :
      print "<a href=\"$dir$_\">$_</a>\n"
      I wonder if that is what you mean?
        thank you for your help claudia