http://www.filehippo.com/download_google_talk/から Google トークなど、一部のソフトウェアの最後の 5 リリースをダウンロードする必要があるタスクの 1 つを自動化しようとしています。
私はそのようなタイプのプログラミング、つまり、perl を介して Web と対話することを行ったことはありません。CGI モジュールを使用してこのことを実装できることを読んで知ったので、このモジュールを試してみました。
誰かが私にもっと良いアドバイスをくれるなら、どういたしまして:)
私のコード:
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use CGI::Carp qw/fatalsToBrowser/;
my $path_to_files = 'http://www.filehippo.com/download_google_talk/download/298ba15362f425c3ac48ffbda96a6156';
my $q = CGI->new;
my $file = $q->param('file') or error('Error: No file selected.');
print "$file\n";
if ($file =~ /^(\w+[\w.-]+\.\w+)$/) {
$file = $1;
}
else {
error('Error: Unexpected characters in filename.');
}
if ($file) {
download($file) or error('Error: an unknown error has occured. Try again.');
}
sub download
{
open(DLFILE, '<', "$path_to_files/$file") or return(0);
print $q->header(-type => 'application/x-download',
-attachment => $file,
'Content-length' => -s "$path_to_files/$file",
);
binmode DLFILE;
print while <DLFILE>;
close (DLFILE);
return(1);
}
sub error {
print $q->header(),
$q->start_html(-title=>'Error'),
$q->h1($_[0]),
$q->end_html;
exit(0);
}
上記のコードで、ダウンロードしたいファイル名を出力しようとしていますが、エラー メッセージが表示されています。このエラー「エラー: ファイルが選択されていません」の理由がわかりません。来ています。