1 #!/usr/bin/perl 2 3 use warnings; 4 5 print "Enter numbers from 1 to 20 and/or letters seperated by a space:", "\n "; 6 print "Enter q or Q to quit", "\n"; 7 ($list = ); 8 chomp $list; 9 print $list, "\n"; 10 print "length of list: " , length($list), "\n"; 11 $howlong = length($list); 12 print "howlong = ", $howlong, "\n"; 13 $sum = 0; 14 $pointer = 0; 15 $hold = ""; 16 $work = ""; 17 while (!$flag and $pointer <= $howlong +1) 18 { 19 $work = substr($list,$pointer,1); 20 if ($work eq "q" or $work eq "Q") { 21 $flag = true; 22 print "flag = , $flag, ", "\n"; 23 } 24 if ($work ne "q" and $work ne "Q") { 25 if ( $work =~ /^[\+-]*[0-9]*\.*[0-9]*$/ && $work !~ /^[\. ]*$/ ) { 26 if ($work == ' ') { 27 if ($pointer > 0) { 28 $hold = "$hold"." + "."$work"; 29 print "pointer = ", $pointer, "\n"; 30 print "hold = ", $hold, "\n"; 31 print "work = ", $work, "\n"; 32 $sum = $sum + $work; 33 $pointer++; 34 } 35 else { 36 $hold = "$hold"."$work"; 37 $sum = ($sum + $work); 38 $pointer++; 39 } 40 } 41 else { 42 $hold = $hold.$hold; 43 } 44 else { 45 $pointer++; 46 print "has alpha: ", $work, "\n"; 47 } 48 } 49 else { 50 print ($hold, " = ", $sum, "\n"); 51 } 52 53 } 54 }