use strict;
use warnings;
use List::Util 'min';
my %array1Hash;
my @array1 = ( 5, 2, 1, 4, 1, 6, 7 );
my @array2 = ( "a", "b", "c", "d", "e", "f", "g" );
push @{ $array1Hash{ $array1[$_] } }, $_ for 0 .. $#array1;
my %array2Hash = map { $_ => $array2[$_] } 0 .. $#array2;
my $array1Min = min @array1;
my $positions = join ', ', @{ $array1Hash{$array1Min} };
my $elements = join ', ', map $array2Hash{$_}, @{ $array1Hash{$array1
+Min} };
print 'The minimum value in @array1 is ', "$array1Min.\n";
print 'The position(s) of ', $array1Min, ' in @array1: ', "$positions.
+\n";
print 'The element(s) in @array2 at position(s) ', "$positions: $eleme
+nts.";
Output:
The minimum value in @array1 is 1.
The position(s) of 1 in @array1: 2, 4.
The element(s) in @array2 at position(s) 2, 4: c, e.
|