我想要做的很简单: 1)从硬编码的URL下载文件(它将始终保持不变) 2)检查文件是否真的是PDF(我认为最好检查幻数%PDF) 3)如果是这样,重命名文件并移动到文件夹xy ||如果没有,则相应地重命名。
注意:这将需要在Windows 7系统上运行。
这是我的代码:
#!/usr/bin/perl
use warnings;
use strict;
use LWP::Simple;
use POSIX qw( strftime );
use File::Copy;
use File::Type;
my $date = strftime("%m/%d/%Y", localtime);
my $url = "http://www.oracle.com/technetwork/database/options"
."/advanced-analytics/r-enterprise/ore-reference-manual-1882822.pdf";
my $dlfile = "Test.pdf";
my $resp = '';
my $srcdir = "C:\\pdfscripthome";
my $dest = "C:\\pdfdump";
my $old = "$srcdir/$dlfile";
$resp = getstore( $url, $dlfile );
sub CheckFileType {
my $chkfile="$srcdir//Test.pdf";
my $ft = File::Type->new();
my $file_type = $ft->mime_type($chkfile);
if ( $file_type eq 'application/pdf' ) {
move( $old, $dest ) or die "Move $old -> $dest failed: $!";
}
else {
rename ("//$srcdir/Test.pdf", "//$srcdir/NotAValidPDFFile.pdf" )
|| die ("Error in renaming");
}
}
sub main{
&CheckFileType();
}
&main;
当我尝试执行时会发生什么,是没有任何反应。奇怪的是,当我发表评论时
use File::Type;
out,它下载文件(当然检查没有发生)。
我认为sub CheckFileType { }
中某处出现了错误,但我无法看到它。