The code shown has no output: it simply overwrites the value of $pair with a new value on each iteration of the nested loops. So, if you add the statement say $pair; after both loops have finished, of course you see only the last value of $pair, which happens to be YY.
To get all the values, you need to move the say statement into the inner loop:
use strict; use warnings; use feature qw( say ); my @aa = qw(A C D E F G H I K L M N P Q R S T V W Y); my $pair; for my $n1 (@aa) { for my $n2 (@aa) { $pair = $n1 . $n2; say $pair; } }
As an alternative, you could store the pairs in an array and output them after the loops have finished:
use strict; use warnings; use feature qw( say ); my @aa = qw(A C D E F G H I K L M N P Q R S T V W Y); my @pairs; for my $n1 (@aa) { for my $n2 (@aa) { push @pairs, $n1 . $n2; } } say for @pairs;
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re^2: doubts on Perl hash
by Athanasius
in thread doubts on perl Hash
by raulgh5
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |