[EMAIL PROTECTED] wrote:

> May anyone tell me if this program is wrong or if there is a 
> implementation problem in perl 5.8.6, 5.8.5, 5.8.2 
> I will show the perl version and a c++ version.  The c++ version 
> worked.  I will also show the version of the perl version that 
> worked with a number changed. 
>  
>  
> The correct version of perl: 

You mean working version.

> #!/usr/bin/perl 
> # Input an integer containing only 0s and 1s and print its decimal 
> equivalent 
>  
> $counter = 1; 
> $counter2 = 1; 
> $total = 0; 
>  
> print "Enter a binary number\n"; 
> $number = <STDIN>; 
> chomp $number; 
>  
> while( ($number / $counter) != 0 ) 
> { 
>    $number1 = ($number / $counter) % 10; 
>    $total = $total + ($number1 * $counter2); 
>    $counter = $counter * 10; 
>    $counter2 = $counter2 * 2; 
> } 
>  
> print "The decimal equivalent of ", $number, " is ", $total, "\n"; 

This seems simpler:

use strict;
foreach (@ARGV) {
        warn "Illegal binary number: $_\n" and next if not /^[01]+$/;
        my $total = 0;
        $total = $total * 2 + $_ foreach split '', $_;
        print "The decimal equivalent of ", $_, " is ", $total, "\n";
}
__END__

> perl wrong version: 

Don't use it.

-- 
  ,-/-  __      _  _         $Bill Luebkert    Mailto:[EMAIL PROTECTED]
 (_/   /  )    // //       DBE Collectibles    Mailto:[EMAIL PROTECTED]
  / ) /--<  o // //      Castle of Medieval Myth & Magic http://www.todbe.com/
-/-' /___/_<_</_</_    http://dbecoll.tripod.com/ (My Perl/Lakers stuff)
_______________________________________________
Perl-Unix-Users mailing list
Perl-Unix-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to