Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: Use of uninitialized value in array element

by Fastolfe (Vicar)
on Jul 12, 2002 at 16:16 UTC ( #181327=note: print w/replies, xml ) Need Help??

in reply to Use of uninitialized value in array element

You could simplify your code a lot by working with hashes instead of arrays.
use List::Util 'sum'; while (<TABFILE>) { my @fields = split /\t/; my $identifier = shift @fields; my ($category, $group) = ($identifier =~ /^TS(\d+)(\w+)/); warn "Parse error", return unless $category && $group; # This may not be what you're doing, but change # this to do the calculations you need to do $sums{$group}->{$category} += sum(@fields); $totals{$group}->{$category} += @fields; } # Another way of cleaning up bad data foreach (keys %sums) { $sums{$_}->{CCFN30NT} += delete $sums{$_}->{CCCFN30NT}; $totals{$_}->{CCFN30NT} += delete $totals{$_}->{CCCFN30NT}; ... }
Also note that Excel can work with CSV or tab-delimited files natively, and more importantly, you can use formulas in Excel to calculate a lot of this. Your script need only output an Excel formula in a field (preceded with an equal sign) instead of calculating the value in advance.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://181327]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (6)
As of 2017-02-20 09:29 GMT
Find Nodes?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?

    Results (294 votes). Check out past polls.