package Math::Interval; sub matrix_norm { my ($mat_ref) = @_; my @row_sums; foreach my $row_ref (@$mat_ref) { my $sum = reduce { $a->abs() + $b->abs() } @$row_ref; push @row_sums, $sum; } return max @row_sums; } package main; my $a = Math::Interval::_interval(0.333333, 0.333334); #### $ perl -Mstrict -e 'print $a; die' Name "main::a" used only once: possible typo at -e line 1. Use of uninitialized value in print at -e line 1. Died at -e line 1. $ perl -Mstrict -e 'print $abc; die' ## die not reached Global symbol "$abc" requires explicit package name at -e line 1. Execution of -e aborted due to compilation errors.