Index: /trunk/PS-IPP-Config/lib/PS/IPP/Metadata/Stats.pm
===================================================================
--- /trunk/PS-IPP-Config/lib/PS/IPP/Metadata/Stats.pm	(revision 8351)
+++ /trunk/PS-IPP-Config/lib/PS/IPP/Metadata/Stats.pm	(revision 8352)
@@ -1,5 +1,5 @@
 # Copyright (c) 2006  Paul Price, Joshua Hoblitt
 #
-# $Id: Stats.pm,v 1.1 2006-08-12 04:26:12 price Exp $
+# $Id: Stats.pm,v 1.2 2006-08-15 21:50:27 price Exp $
 
 package PS::IPP::Metadata::Stats;
@@ -105,34 +105,49 @@
 
     # Check that we found everything for the constants
-    foreach my $constant (@{$self->constants()}) {
-	if (not defined $self->{data}->{$constant}->{value}) {
-	    carp "Unable to find value for ", $constant, "\n";
+    my $constants = $self->constants();	# Array of constants
+    if (defined $constants) {
+	foreach my $constant (@$constants) {
+	    if (not defined $self->{data}->{$constant}->{value}) {
+		carp "Unable to find value for ", $constant, "\n";
+	    }
 	}
     }
 
     # Get mean, stdev for the variables
-    foreach my $variable (@{$self->variables()}) {
-	my $info = $self->{data}->{$variable}; # The information about this particular variable
-	my $array = $info->{data}; # The array of values collected
-	if (scalar @$array == 0) {
-	    carp "Unable to find any values for ", $variable, "\n";
-	    next;
-	}
-
-	# Get statistics on the value
-	my $stats = Statistics::Descriptive::Sparse->new(); # Statistics calculator
-	$stats->add_data(@$array);
-	$info->{mean} = $stats->mean();
-	$info->{stdev} = $stats->standard_deviation();
-    }
-	
+    my $variables = $self->variables();	# Array of variables
+    if (defined $variables) {
+	foreach my $variable (@$variables) {
+	    my $info = $self->{data}->{$variable}; # The information about this particular variable
+	    my $array = $info->{data}; # The array of values collected
+	    if (scalar @$array == 0) {
+		carp "Unable to find any values for ", $variable, "\n";
+		next;
+	    }
+
+	    # Get statistics on the value
+	    my $stats = Statistics::Descriptive::Sparse->new(); # Statistics calculator
+	    $stats->add_data(@$array);
+	    $info->{mean} = $stats->mean();
+	    $info->{stdev} = $stats->standard_deviation();
+	}
+    }
+    
     # Get mean, stdev, mean stdev for the background
-    my $meanStats = Statistics::Descriptive::Sparse->new(); # Statistics for mean
-    $meanStats->add_data(@backgrounds);
-    $self->bg_mean($meanStats->mean());
-    $self->bg_stdev($meanStats->standard_deviation());
-    my $stdevStats = Statistics::Descriptive::Sparse->new(); # Statistics for standard deviation
-    $stdevStats->add_data(@bgStdevs);
-    $self->bg_mean_stdev($stdevStats->mean());
+    if (scalar @backgrounds > 0) {
+	my $meanStats = Statistics::Descriptive::Sparse->new(); # Statistics for mean
+	$meanStats->add_data(@backgrounds);
+	$self->bg_mean($meanStats->mean());
+	$self->bg_stdev($meanStats->standard_deviation());
+    } else {
+	$self->bg_mean(undef);
+	$self->bg_stdev(undef);
+    }
+    if (scalar @bgStdevs > 0) {
+	my $stdevStats = Statistics::Descriptive::Sparse->new(); # Statistics for standard deviation
+	$stdevStats->add_data(@bgStdevs);
+	$self->bg_mean_stdev($stdevStats->mean());
+    } else {
+	$self->bg_mean_stdev(undef);
+    }
 
     return $self;
