Forum Webscript.Ru
Программирование => Perl => Тема начата: Yuraz от 08 Августа 2002, 12:43:07
-
Делаю так
opendir (DIR, ".") or die "Cannot open current directory";
@list=join ("::", readdir(DIR));
closedir DIR;
for ($i=0;$i<@list;$i++)
{
($name)=split(/::/,@list[$i]);
print "$name
";
}
Это последний вариант, печатает или сплошняком или наоборот ничего, пробовал также glob, но она возвращает с полным путём тоже самое. Или проблема в том что не правильно в массив забиваю или достаю.... Надо показать просто директорию. Но что бы уже из массива, а не из
print join ("
", glob(\'*\'));
Помогите!
-
Попробуй так:
opendir (DIR, ".") or die "Cannot open current directory";
@files=readdir DIR;
close DIR;
foreach (@files) {print "$_
" unless -d $_}
-
Вот сделал скрипт, выводит заданную директорию с возможностью грохнуть файлы, может кому понадобится:
#!/usr/local/bin/perl
$dir="c:/usr/local/server-ini/www/upload";
$script="cgi-bin/dir.pl";
if ($ENV{\'REQUEST_METHOD\'} eq "POST")
{
read(STDIN, $bufer, $ENV{\'CONTENT_LENGTH\'});
}
elsif ($ENV{\'REQUEST_METHOD\'} eq "GET")
{
$bufer=$ENV{\'QUERY_STRING\'};
}
@pairs = split(/&/, $bufer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$name =~ s///g;
$name =~ s/<([^>]|\\n)*>//g;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
$input{$name} = $value;
}
$del=$input{del};
print "Content-type: text/html; charset=windows-1251\\n\\n";
if($del)
{
unlink ("$dir/$del");
print "";
print "";
print "";
print "!
";
print "";
exit;
}
opendir (DIR, "$dir/.") or die "Cannot open current directory";
@files=readdir DIR;
close DIR;
for($i=2;$i<@files;$i++)
{
print " File: $files[$i] | Delete
"
}