Regex 如何在Perl中优化以下代码?

Regex 如何在Perl中优化以下代码?,regex,excel,perl,Regex,Excel,Perl,如何在Perl中使用哈希和数组优化下面的Excel代码?对于下面的示例,是否有任何可能的方法来减少代码行数 示例1:- $style = $workbook->add_format(); $style->set_bold(); $style->set_bg_color('blue'); $style->set_align('center'); $style->set_border(1); $style->set_border_color('black');

如何在Perl中使用哈希和数组优化下面的Excel代码?对于下面的示例,是否有任何可能的方法来减少代码行数

示例1:-

$style = $workbook->add_format();
$style->set_bold();
$style->set_bg_color('blue');
$style->set_align('center');
$style->set_border(1);
$style->set_border_color('black');
$worksheet->write_col("A2",$file1);
$worksheet->write_col("B2",$file2);
$worksheet->write_col("C2",$file3,$style);
$worksheet->write_col("D2",$file4,$style);
示例2:-

$style = $workbook->add_format();
$style->set_bold();
$style->set_bg_color('blue');
$style->set_align('center');
$style->set_border(1);
$style->set_border_color('black');
$worksheet->write_col("A2",$file1);
$worksheet->write_col("B2",$file2);
$worksheet->write_col("C2",$file3,$style);
$worksheet->write_col("D2",$file4,$style);

下面是一个示例,说明如何在
for
循环中使用哈希和:

use strict;
use warnings;
use Spreadsheet::WriteExcel;

my $workbook = Spreadsheet::WriteExcel->new('formats.xls');


my $worksheet = $workbook->add_worksheet('Introduction');

my %format = (bold => 0, bg_color => 'blue', align => 'center',
          border => 1, border_color => 'black');
my $style = $workbook->add_format(%format);
$worksheet->write(4, 0, 'This workbook demonstrates some of',  $style);
$worksheet->write(5, 0, 'the formatting options provided by',  $style);
$worksheet->write(6, 0, 'the Spreadsheet::WriteExcel module.', $style);

my ( $file1, $file2, $file3, $file4 ) = qw(file1 file2 file3 file4);
my %write_col = ( A2 => [$file1], B2 => [$file2],
                  C2 => [$file3, $style], D2 => [$file4, $style] );
$worksheet->write($_, @{$write_col{$_}}) for keys %write_col;

$workbook->close();

下面是一个示例,说明如何在
for
循环中使用哈希和:

use strict;
use warnings;
use Spreadsheet::WriteExcel;

my $workbook = Spreadsheet::WriteExcel->new('formats.xls');


my $worksheet = $workbook->add_worksheet('Introduction');

my %format = (bold => 0, bg_color => 'blue', align => 'center',
          border => 1, border_color => 'black');
my $style = $workbook->add_format(%format);
$worksheet->write(4, 0, 'This workbook demonstrates some of',  $style);
$worksheet->write(5, 0, 'the formatting options provided by',  $style);
$worksheet->write(6, 0, 'the Spreadsheet::WriteExcel module.', $style);

my ( $file1, $file2, $file3, $file4 ) = qw(file1 file2 file3 file4);
my %write_col = ( A2 => [$file1], B2 => [$file2],
                  C2 => [$file3, $style], D2 => [$file4, $style] );
$worksheet->write($_, @{$write_col{$_}}) for keys %write_col;

$workbook->close();

对于第一个示例:您可以尝试向该方法添加属性,例如
$style=$workbook->add\u格式(粗体=>0,bg\u颜色=>'blue',…)
。对于第二个示例:可以使用第一个参数作为密钥的散列。但这取决于脚本中的其他代码。如果您显示更多的代码,那么将更容易给出advice@Hakon我没有正确的代码。我只是需要一个想法。这就是我发布此问题的原因。第一个示例:您可以尝试向该方法添加属性,例如
$style=$workbook->add_format(bold=>0,bg_color=>'blue',…)
。对于第二个示例:可以使用第一个参数作为密钥的散列。但这取决于脚本中的其他代码。如果您显示更多的代码,那么将更容易给出advice@Hakon我没有正确的代码。我只是需要一个想法。这就是为什么我发布这个问题。你能解释这行吗?my($file1,$file2,$file3,$file4)=qw(file1 file2 file3 file4)@Crazycoder它只是为变量
$file1
$file2
。。。只需使用您的值:)和
qw(ab)
('a','b')
相同,有关更多信息,请参阅您的解释。您的解释给了我一个好主意,感谢您提供更多信息。您能解释这一行吗?my($file1,$file2,$file3,$file4)=qw(file1 file2 file3 file4)@Crazycoder它只是为变量
$file1
$file2
。。。只需使用您的值:)和
qw(ab)
('a','b')
相同,有关更多信息,请参阅您的解释给了我一个好主意,感谢您提供更多信息。