... sort { $data{$a}{stride_length} <=> $data{$b}{stride_length} } ...
####
#!/usr/bin/env perl -l
use strict;
use warnings;
use Text::CSV;
use Inline::Files;
my %data;
my $csv = Text::CSV::->new;
while (my $row = $csv->getline(\*FILE1)) {
$data{$row->[0]}{stride_length} = $row->[1];
}
while (my $row = $csv->getline(\*FILE2)) {
@{$data{$row->[0]}}{qw{leg_length diet}} = @$row[1,2];
}
print "$_ @{$data{$_}}{qw{stride_length leg_length}}" for sort {
$data{$a}{stride_length} <=> $data{$b}{stride_length}
}
grep {
$data{$_}{diet} eq 'herbivore'
}
map {
$data{$_}{diet} ||= 'NA';
$data{$_}{stride_length} ||= 0;
$data{$_}{leg_length} ||= 0;
$_;
} keys %data;
__FILE1__
Euoplocephalus,1.87,quadrupedal
Stegosaurus,1.90,quadrupedal
Tyrannosaurus Rex,5.76,bipedal
Hadrosaurus,1.4,bipedal
Deinonychus,1.21,bipedal
Struthiomimus,1.34,bipedal
Velociraptor,2.72,bipedal
__FILE2__
Hadrosaurus,1.2,herbivore
Struthiomimus,0.92,omnivore
Velociraptor,1.0,carnivore
Triceratops,0.87,herbivore
Euoplocephalus,1.6,herbivore
Stegosaurus,1.40,herbivore
Tyrannosaurus Rex,2.5,carnivore
####
Triceratops 0 0.87
Hadrosaurus 1.4 1.2
Euoplocephalus 1.87 1.6
Stegosaurus 1.90 1.40