I'm not sure I understand what you're saying?... Let's say I have the following
Um, that is not an array, or three arrays, you can't sort that. I too am completely unsure of what you're asking about. Does this help?
#!/usr/bin/perl --
use strict; use warnings;
use Data::Dump;
Main( @ARGV );
exit( 0 );
sub Main {
my @choice = Ply( 0, 0, 0 );
dd\@choice;
push @choice, Ply( 1, 1, 1 );
push @choice, Ply( 2, 2, 3 );
dd\@choice;
print "Combinations ", int( @choice ),"\n";
print "Materials ", CountMaterials( \@choice ),"\n";
}
sub CountMaterials {
my( $co ) = @_;
my %seen;
for my $item ( @$co ){
my $mat = $item->[0];
$seen{ $mat }++;
}
return scalar keys %seen;
}
BEGIN {
my @Thickness = ( "0.0077","0.0147","0.0054");
my @Material = ( "PW","8HS","Tape");
my @Orientation = ("-45","0","45","90");
sub Ply {
my( $mat, $thi, $ori ) = @_;
return [
$Material[ $mat ],
$Thickness[ $thi ],
$Orientation[ $ori ],
];
}
}
__END__
[["PW", 0.0077, -45]]
[["PW", 0.0077, -45], ["8HS", 0.0147, 0], ["Tape", 0.0054, 90]]
Combinations 3
Materials 3
All you have to do is write a function to query the target option menu and return an array like CountMaterials expects |