Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://181327]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2023-02-02 14:49 GMT
Find Nodes?
    Voting Booth?
    I prefer not to run the latest version of Perl because:

    Results (19 votes). Check out past polls.