#!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw/ dd /; Main( @ARGV ); exit( 0 ); sub Main { my $frobnications = ...; # formerly \@full_data ... or DemoFrobnications(); my( $DE, $FG ) = romulate_DE_FG( $frobnications ); dd( $DE ); dd( $FG ); my( $avgDE, $stddevDE ) = pancakes( $DE ); ## AddColumn( $target, $column ); AddColumn( $frobnications, ... ); } sub romulate_DE_FG { my( $frobnications ) = @_; my( @DE, @FG ); for my $row ( @$frobnications ){ ... push @DE, ... } return \@DE, \@FG; } sub AddColumn { my( $frobnications, $column ) = @_; ... } sub DemoFrobnications { return ...; ## output of dd( \@full_data ); }