我有一个数组,其中包含我要创建的文件名。我编写了下面的代码,一次创建一个文件。
use strict;
use File::Slurp;
my @files_to_create=(file_1,file_2......file_100000);
my $File_Con="blah blah...";
foreach my $create_file(@files_to_create){
&Make_File($create_file);
}
sub create_file{
my $to_make=shift;
write_file($to_make,$File_Con);
}
我想在数组中共享多个标量的子例程。因此我可以减少文件创建时间..任何人都可以建议做的步骤......?
答案 0 :(得分:1)
有关如何在Perl中使用线程的非常好的教程,请参阅perldoc perlthrtut
。
use strict;
use warnings;
use threads;
sub create { ... }
my @files_to_create = map { "file_$_" } 1 .. 100_000;
my $config = "blah blah";
my @threads; # To store the threads created
foreach my $file ( @files_to_create ) { # Create a thread for each file
my $thr = threads->new( \&create, $file, $config );
push @threads, $thr;
}
$_->join for @threads; # Waits for all threads to complete