Спасибо всем за повторы, но вы не правы :) Вот какая-то ошибка.Работает только с полным путем.Я выполняю некоторые тесты.Вот код:
#!/usr/bin/perl
use strict;
use File::Find;
use Cwd;
print "++ With relative path ++\n";
find(\&f, ".");
print "\n++ With current working directory module ++\n";
find(\&f, cwd);
sub f
{
my $file = $File::Find::name;
print $file . ":\n";
if (-f $file) { print "---- ist Datai\n"; }
else { print "---- ist nicht eine Datei!!!\n"; }
}
Вот команды:
[andrey @ andreys-comp testdir] $ ls -l innerdir /
всего 4
-rw-rw-r-- 1 andrey andrey 0 18 июня 22:02 innertestfile
[andrey @ andreys-comp testdir] $ ./test.pl
++ с относительным путем ++
.:
---- ist nicht eine Datei !!!
./test.pl:
---- ist Datai
./testfile:
---- ist Datai
./innerdir:
---- ist nicht eine Datei !!!
./innerdir/innertestfile:
---- ist nicht eine Datei !!!
++ С текущим модулем рабочего каталога ++
/ home / andrey / testdir:
---- ist nicht eine Datei !!!
/ home / andrey / testdir / test.pl:
---- ist Datai
/ home / andrey / testdir / testfile:
---- ist Datai
/ home / andrey / testdir / innerdir:
-- ist nicht eine Datei !!!
/ home / andrey / testdir / innerdir / innertestfile:
---- ist Datai
ist Datei: есть файл
ist nicht eine Datei: это не файл (мне просто нравится немецкий :))
Укажите, что в первом методе ./innerdir/innertestfile не определяется как файл, а не во втором.