Rob Canning wrote:
hi i have a sprintf which uses a scalar as its format:
my $Bformat = "%1\$s16-> %2\$s16 %3\$s16 %4\$s16 %5\$s16 %6\$s16-> %7\$s16 
%8\$s16"


what i would like to do is generate a new format for the sprintf by doing permutations of 5 arrays like this:

my @phraseA = qw( %1\$s16-> %2\$s16-> %3\$s16-> ); my @phraseB = qw( %4\$s16 %5\$s16 %6\$s16-> );
my @phraseC = qw( %7\$s16 %8\$s16 %9\$s16 );
my @phraseD = qw( %10\$s16-> %11\$s16 %12\$s16 ); my @phraseE = qw( %13\$s16 %14\$s16 %15\$s16-> );
my @phrasegroup = ([...@phrasea], [...@phraseb], [...@phrasec], [...@phrased], 
[...@phrasee]);
my @phraseperm  = map {...@$_} permute(@phrasegroup);

#flatten permutation array
my @Bformat = map { @$_ } @phraseperm;

but when i do this i get :

Invalid conversion in sprintf: "%\" at score-generator11.pl line 53.

so i thought maybe i needed to turn the array into a scalar:

#my $test = join(" ",@Bformat);

but that gave the same error

any ideas what i am doing wrong?

Strings like '%1\$s16->' are not valid sprintf/printf formats. What does your data look like and what do you expect it to look like after using sprintf?




John
--
Those people who think they know everything are a great
annoyance to those of us who do.        -- Isaac Asimov

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to