#!/usr/bin/perl use strict; use warnings; # 819634 my $file = "checkdata.csv"; # open( F, "$file" ); #replaced: see Note 1 open(F, '<', $file) or die "Can't open $file for read: $!"; my @lines = ; my $sum = 0; my ( $vplus, $v2 ); for my $line ( @lines ) { my $minus_sign = 0; my $fractional_pennies = 0; my @data = ''; chomp( $line ); @data = split( ",", $line ); if ( $data[2] =~ /\s*(-)(\d*\.\d{2})(\d?)/ ) # note 2 { $minus_sign = $1; $v2 = $2; $fractional_pennies = $3; if ( $fractional_pennies =~ /[^0]/ ) { warn "\n\t fractional pennies present in: " . $v2,$fractional_pennies . "\n\t Ignoring the fraction.\n"; } } elsif ( $minus_sign ne "-" ) { warn "\n\t Missing minus sign in $data[2]\n\t Continuing as if it were present"; if ( $data[2] =~ /\s*(-){0}(\d*\.\d{2})(\d?)/ ) # Note 3 { $v2= $2; } } print " \$v2 is: $v2\n"; $sum = $sum + $v2; } printf("Total: %5.2f\n", $sum);