首先,我们需要通过 perltidy 工具来处理一下。
$i = 5;
$| = @f = map { ("!" x $i++) . "9$_*\x{0e}" } ">>>E!)", ">>>E)", ">>>E", ">>>", ">>", ">", "";
push @f, reverse @f[ 1..5 ];
@f = map {
join "",
map { chr(ord() - 1) }
split //
} @f;
{
$f = shift @f;
print $f;
push @f, $f;
select undef, undef, undef, .25;
redo;
last;
exit;
print or die;
}
第一行显而易见。
第二行创建了一个列表 ">>>E!)", ">>>E)", ">>>E", ">>>", ">>", ">", ""
并将它们等距离排列,然后附加一个星号和一个“Shift Out”(回车后的字符)。
第三行将5到1的项目(按顺序)追加到该列表中,因此它将是">>>E!)", ">>>E)", ">>>E", ">>>", ">>", ">", "", ">", ">>", ">>>", ">>>E"
。
该映射将所有字符递减一,从而创建像8===D ()
这样的元素。
第二个循环简单地以0.25秒的间隔循环打印列表中的元素。 回车使它们相互覆盖,从而看到动画效果。 最后几行永远不会被执行,因此是无效的。