#!/usr/bin/perl use strict; use warnings; my %Consumption; my @headers; foreach my $filename (@ARGV){ Extract_info_From_File_Into_Consumption ($filename); } # Print output print "Dist\t@headers\n"; for my $dist (sort {$a <=> $b} keys %Consumption){ my $line = "$dist\t"; $line .= "\t$_" for @{$Consumption{$dist}}; print "$line\n"; } #---------------- sub Extract_info_From_File_Into_Consumption { my $filename = shift; open my $f , "<", $filename or die "Could not open $filename : $!"; my ($head1,$head2) = split /\s+/ ,<$f>,2 or die "No data in $filename"; chomp $head2; my $index = scalar @headers; $headers[$index] = "$head2\_$filename"; while (<$f>){ my ($dist, $consume) = m/(\d+\.?\d*)/g; $Consumption{$dist}[$index] = $consume; } close $f; }