#!/usr/bin/perl -lw use strict; my $number0 = '1.00'; #zwon's version with NON-interpolating quotes my $number1 = 1.00; my $number2 = 1.3939393939393939393939393939393939393939393939393939393939393939; # exceeds length for FP precision my $number3 = 123456789.123e5; my $number4 = 123e-5; my $number5 = '123e-5' ; print "\$number0, $number0, contains a period" if $number0 =~ /\./; print "\$number0, $number0, is an Integer" if $number0 == int($number0); print "\$number1, $number1, contains a period" if $number1 =~ /\./; print "\$number1, $number1, is an Integer" if $number1 == int($number1); print "\$number2, $number2, contains a period" if $number2 =~ /\./; print "\$number2, $number2, is an Integer" if $number2 == int($number2); print "\$number3, $number3, contains a period" if $number3 =~ /\./; print "\$number3, $number3, is an Integer" if $number3 == int($number3); if ( $number4 =~ /\./ ) { # alt coding of the previous solely to allow the else print "\$number4, $number4, contains a period"; } else { print "\tNo period in $number4"; } print "\$number4, $number4, is an Integer" if $number4 == int($number4); if ( $number5 =~ /\./ ) { print "\$number5, $number5, contains a period"; } else { print "\tNo period in $number5"; } print "\$number5, $number5, is an Integer" if $number5 == int($number5); print "\nNext, using ww's regex"; print "\n\$number0: $number0\n\$number1: $number1\n\$number2: $number2\n\$number3: $number3\n\$number4: $number4\n"; # CASE 0 $number0 =~ /\d+(\.)\d+/; if ($1) { print "\$number0 contains a decimal point"; } $number0 =~ s/(\d+)(\.)(\d+)/$1/; print "Integer value, if desired: $number0"; # CASE 1 $number1 =~ /\d+(\.)\d+/; if ($1) { print "\$number1 contains a decimal point"; } $number1 =~ s/(\d+)(\.)(\d+)/$1/; print "Integer value of \$number1, if desired: $number1"; # CASE 2 $number2 =~ /\d+(\.)\d+/; if ($1) { print "\$number2 contains a decimal point"; } $number2 =~ s/(\d+)(\.)(\d+)/$1/; print "Integer value of \$number2, if desired: $number2"; # CASE 3 $number3 =~ /\d+(\.)\d+/; if ($1) { print "\$number3 contains a decimal point"; } $number3 =~ s/(\d+)(\.)(\d+)/$1/; print "Integer value of \$number3, if desired: $number3"; # CASE 4 $number4 =~ /(\.)/; # Special case: Scientific notation if ($1) { print "\$number4 contains a decimal point"; } $number4 =~ s/(\d+)(\.)(\d+)/$1/; print "Integer value of \$number4, if desired: $number4"; # CASE 5 $number5 =~ /(\.)/; # Special case, as above if ($1) { print "\$number5 contains a decimal point"; } else { print "NO decimal point in \$number5, $number5"; } $number5 =~ s/(\d=)(\.)(\d+)/$1/; print "Integer value of \$number5, if desired: " . int($number5); # using int(); otherwise prints the string literal