if ( $si >= $sn ) {
$spair{$si."-".$sn} = $prod;
} else {
$spair{$sn."-".$si} = $prod;
}
####
use strict;
use warnings;
use Data::Dumper;
my %hash2 =(
'1' => 2,
'3' => 5,
'4' => 2,);
my %spair = ();
my $prod;
foreach my $si (keys %hash2) {
foreach my $sn (keys %hash2) {
if ($si == $sn) {
$prod = $hash2{$si};
} else {
$prod = $hash2{$si}*$hash2{$sn};
}
if ( $si >= $sn ) {
$spair{$si."-".$sn} = $prod;
} else {
$spair{$sn."-".$si} = $prod;
}
}
}
print Dumper \%spair;
####
$VAR1 = {
'3-1' => '10',
'3-3' => 5,
'1-1' => 2,
'4-1' => '4',
'4-3' => '10',
'4-4' => 2
};