我之前从未使用过线程,但我想我可能遇到过这样的机会:
我编写了一个脚本,通过一组~500个Excel文件进行咀嚼,并使用Parse :: Excel从工作簿中的特定工作表中提取值(平均每个工作簿两个工作表;每个工作表提取一个单元格.)
现在运行它,我只是逐个浏览文件数组并从文件中提取相关信息,大约需要45分钟才能完成.
我的问题是:这是一个使用线程的机会,并且一次有多个文件被点击*,或者我应该只接受45分钟的运行时间?
(* - 如果这是对我可以用线程做什么的严重误解,请说出来!)
提前感谢您提供的任何指导!
编辑 - 添加示例代码.下面的代码是一个sub,在foreach循环中为存储在数组中的每个文件位置调用:
# Init the parser
my $parser = Spreadsheet::ParseExcel->new;
my $workbook = $parser->parse($inputFile) or die("Unable to load $inputFile: $!");
# Get a list of any sheets that have 'QA' in the sheet name
foreach my $sheet ($workbook->worksheets) {
if ($sheet->get_name =~ m/QA/) {
push @sheetsToScan, $sheet->get_name;
}
}
shift @sheetsToScan;
# Extract the value from the appropriate cell
foreach (@sheetsToScan) {
my $worksheet = $workbook->worksheet($_);
if ($_ =~ …Run Code Online (Sandbox Code Playgroud)