Your immediate problem is that x doesn't do what you want. To achieve what you want ("doubling" the commands) you need something like:
push @array, ('@', '@') if scalar(@array) < 10;
splice @array, -2, 2 if scalar(@array) >= 10;
However that is only a tiny part of the problem. Your bigest problem is that an array is not appropriate, you need to use a string. Something like this:
use strict;
use warnings;
use Text::Autoformat;
my $str=qw/@/;
for my $i(1..10){
$str = autoformat ($str, { justify => 'center' });
print "$str\n";
$str .= "@@" if length ($str) < 10;
substr $str, -2, 2, '' if length ($str) > 10;
}
However that still fails because you clobber $str each time through the loop. Changing the first two lines in the loop to :
my $newStr = autoformat ($str, { justify => 'center' });
print "$newStr\n";
gets you closer, but leaves another logic problem (bug) which I'll leave you to puzzle over. :)
DWIM is Perl's answer to Gödel
|