내 목표 : 이름과 생성 날짜가있는 디렉토리에 * gz 파일을 나열하십시오. Perl : 디렉토리의 파일에서 타임 스탬프를 가져올 수 없음 -> 18 행의 초기화되지 않은 값 사용
나는 다음과 같은#!/usr/bin/perl
use strict;
use warnings;
use File::stat;
use Time::localtime;
my $directory = '/home/hans/.config/cqrlog/database';
opendir (DIR, $directory) or die $!;
my @files = (readdir(DIR));
closedir(DIR);
foreach $_ (@files) {
# Use a regular expression to find files ending with .gz
if ($_ =~ m/\.gz$/) {
my $file_name = $_;
my $file_time = (stat($_))[9];
print "$file_time\n";
}
}
을 썼다 그러나 나는 ./perl-matching-files.pl 라인 (18)에 연결 (.) 또는 문자열의 초기화되지 않은 값 $의 file_time의 자주 보이는 오류 "사용을 점점 계속 할 . " 이것은 인쇄 라인입니다.
foreach $_ (@files) {
# Use a regular expression to find files ending with .gz
if ($_ =~ m/\.gz$/) {
my $file_name = $_;
my @file_time_array = (stat($_));
my $file_time = $file_time_array[9];
print $file_name , " - " , $file_time , "\n";
}
}
을하지만 다시는 마지막 인쇄 라인에 barfs :
은 또한 다음과 같은 시도했다. 나는 또한 while 루프를 시도했지만 똑같은 결과를 보았다. 하지만 파일 이름이 인쇄되므로 뭔가 올바르게 수행해야합니다. 배열을 통해 읽을 때 파일의 타임 스탬프가 읽히지 않는다고 느낍니다. 그러나 나는 전문가의 많은 부분이 잘못되었다는 것을 아는 사람이 아닙니다. 그것은 항상 인쇄 줄에 오는 것 같습니다. 모든 통찰력이 인정됩니다. 건배. 대신my $file_time = (stat($_))[9];
의