in reply to Text::Autoformat
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
In Section
Seekers of Perl Wisdom