该问题已移至“代码审查”中的该职位。请在代码审查中回答问题。谢谢!
受此颜色渐变生成器的启发,这是perl6中的渐变生成器。我想知道代码是否可以简化或改进。它将十六进制颜色转换为base10,计算渐变颜色,然后将颜色转换为base16。
my $initial_color = '#FF0000';
my $final_color = '#00FF00';
my $gradient = 10;
my @initial = ($initial_color ~~ /\#(..)(..)(..)/).list.map: { .Str.parse-base(16) };
my @final = ($final_color ~~ /\#(..)(..)(..)/).list.map: { .Str.parse-base(16) };
my @range = @final Z- @initial;
my @increment = @range.map: { $_ / $gradient };
my @color;
@color.push: @initial;
for (1..$gradient) -> $i {
@color.push: @(@color[$i-1]) Z+ @increment;
}
for (0..$gradient) -> $i {
@color[$i] = '#' ~ ( @(@color[$i]).map: { .base(16,0).fmt('%02s') } ).join;
}
my $fh = open '/tmp/delete.html', :w;
for (0..$gradient) -> $i {
$fh.print: " ";
}
$fh.print: ' ';
$fh.close;
run ;