我試圖運行此Perl腳本,但它並未按需要運行。它應該存儲它們日期的格式(例如:23年11月3日)的文件夾名稱值無法使用Perl將目錄名打印到文件
我在我的帳戶放在這個位置的一些文件夾:
/hqfs /數據存儲/文件
11-02-23 11-02-17 11-04-21
我將這些存儲在「processed_dirs.dat」文件中。
但在輸出:我在processed_dirs.dat
了"pst12345678"
當我打印$dh
,我得到了一些GLOB(0x12345)
事情是這樣的:
請幫我在得到正確的輸出。
#!/usr/bin/perl
use strict;
use warnings;
use Storable;
# This script to be run 1 time only. Sets up 'processed' directories hash.
# After this script is run, ready to run the daily script.
my $dir = '/hqfs/datastore/files'; # or what ever directory the date-directories are stored in
opendir my $dh, $dir or die "Opening failed for directory $dir $!";
my @dir = grep {-d && /^\d\d-\d\d-\d\d$/ && $_ le '11-07-25'} readdir $dh;
closedir $dh or die "Unable to close $dir $!";
my %processed = map {$_ => 1} @dir;
store \%processed, 'processed_dirs.dat';
我沒有看到你的代碼有什麼問題 - 你期望在processed_dirs.dat中找到什麼? 我建議您驗證@dir是否是您期望的: print join「,」,@dir;打印「\ n」; – NetMage
它不會給出任何輸出....我該怎麼辦? – user847323
[ysth](http://stackoverflow.com/users/17389/ysth)發現了錯誤(下文)。嘗試'-d「$ dir/$ _」&& ...',你應該在'@ dir'中找到目錄。對目錄「-d」的測試需要完整的路徑才能正常工作(除非當前目錄將成爲您正在閱讀的目錄)。 –