Как получить статистическую информацию для файла войны, используя Perl - PullRequest
0 голосов
/ 05 августа 2011

У меня есть Perl-скрипт, который получает статистическую информацию для данного файла.Но это не работает для .war файла.(Этот файл имеет символическую ссылку.)

Я передаю местоположение файла, в котором есть несколько файлов.

$fntxt указывает на /dw/xyz/file1.txt.file1.txt имеет /vob/vob1/test.war.

Выполнение @Stats=stat($ln); возвращает пустой массив для файла .war.

open(DAT, $fntxt);
@fnames=<DAT>;
close(DAT);
print "@fnames\n";

foreach $ln (@fnames)
{
    chomp $ln;
    $i = length $ln;   
    if ($i>0)
    {     
    @Stats=stat($ln);
    if (!@Stats)
    {
        print "File [$ln] specified in [$fntxt] does not exist. Correct then rerun.\n";
        exit 255;
    }

    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
         = localtime((stat($ln))[9]);
    $mon += 1;
    $year += 1900;

    $tstamp = sprintf("%04d%02d%02d%02d%02d.%02d",
        $year,$mon,$mday,$hour,$min,$sec)
}

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 24 августа 2011

С помощью символической ссылки (при условии, что Unix немного похож) вам нужны права доступа к файлу, а не к ссылке. Используйте -l, чтобы определить, что файл является символической ссылкой, и readlink, чтобы узнать, с чем он связан. Если имеется несколько ссылок (то есть ссылка на ссылку ...), следуйте по ним, пока не найдете файл.

...