Forum Webscript.Ru

Программирование => Perl => Тема начата: z3f от 01 Апреля 2004, 13:00:28

Название: Вопрос чайника - не могу найти имя файла
Отправлено: z3f от 01 Апреля 2004, 13:00:28
Проблем такая  - елси есть файл тогда делать одно действие если файла в директории нет - тогда другое.
Принципиально выглядит так:
if (file_exist){делать это} else {делать другое}
Не могу написать правльный код для file_exist!!!!!
Делаю так (через ж...):
@ar=<${bilet}/${vopros)m.txt>;
if ($#ar!=0){while () {print;}}
Код не работает!

Что делать????

С уважением z3f.
Название: Вопрос чайника - не могу найти имя файла
Отправлено: Chs от 01 Апреля 2004, 13:09:31
perldoc -f -e
Название: Вопрос чайника - не могу найти имя файла
Отправлено: z3f от 01 Апреля 2004, 13:31:14
Сделал=(
=item I<-X> FILEHANDLE
=item I<-X> EXPR
=item I<-X>

    -e   File exists.

И как это использовать? Примерчик бы..... хоть какой либо....
Название: Вопрос чайника - не могу найти имя файла
Отправлено: vladsu от 01 Апреля 2004, 13:47:45
Можно, например, так:

use strict;

my $file = \'AUTOEXEC.BAT\';

chdir \'c:/\';

print "yes" if grep{/$file/} <*>;

или

use strict;

opendir DIR,\'c:/\';
my $file = \'AUTOEXEC.BAT\';

while (my $f = readdir DIR) {
       print \'yes\' if $file eq $f;
}

или

use strict;

print \'yes\' if -e \'c:/AUTOEXEC.BAT\';
Название: Вопрос чайника - не могу найти имя файла
Отправлено: z3f от 01 Апреля 2004, 14:04:02
Дык в том то вся и проблема, что нет возможности указать имя файла напрямую=(
имя файла примерно выглядит так ${vopros)m.txt
а имя папки в которой он находится - это так $bilet
и целиком это выглядит так ${bilet}/${vopros)m.txt
Если бы была возможность указать имя напрямую - я это давно бы сделал=((((
Название: Вопрос чайника - не могу найти имя файла
Отправлено: vladsu от 01 Апреля 2004, 14:15:12
use strict;

my $bilet = \'c:/\';
my $vopros = \'1\';

print \'yes\' if -e "${bilet}/${vopros}m.txt";
Название: Вопрос чайника - не могу найти имя файла
Отправлено: z3f от 01 Апреля 2004, 14:22:08
Делаю:
if (-e, "${bilet}/${vopros}m.txt") {while () {print \'                                print "$num".\'">\';
                                print " $_ \\n";
                                print "
";
                                $num++;}}
                                else {while (){print \'                                print "$num".\'">\';
                                print " $_ \\n";
                                print "
";
                                $num++;}}

В страничке такой код выкидывает только радиобуттоны - вне зависимости от того есть файл с именем ${bilet}/${vopros}m.txt или его нет! То есть в любом случа выполняет только первое условие=( Проверено...
Почему так???

С уважением z3f.
Название: Вопрос чайника - не могу найти имя файла
Отправлено: vladsu от 01 Апреля 2004, 14:25:29
use CGI;
Название: Вопрос чайника - не могу найти имя файла
Отправлено: vladsu от 01 Апреля 2004, 14:27:31
И где Вы в
print \'yes\' if -e "${bilet}/${vopros}m.txt";

запятую узрели?
Название: Вопрос чайника - не могу найти имя файла
Отправлено: z3f от 01 Апреля 2004, 14:36:20
Каюсь - слепой и тупой....
Заработало!
Спасибо громадное!!!!!!


С уважением z3f.