On Wed, Mar 19, 2008 at 9:32 AM, Rajanikanth Dandamudi
<[EMAIL PROTECTED]> wrote:
> Hi All,
>
>  I would like to understand the behavior of the following program:
snip
>  my @a=qw(1 0 0 0 0 0 0 1);
>  my @b=qw(0 0 0 0 0 0 0 0);
snip
>  I would like to understand why $f does not have any value in the first
>  print statement. perl version being used is v5.8.0
snip

Because you are not using a numeric xor, you are using an string xor.
The qw// operator returns a list of strings:

my @a = ('1', '0', '0', '0', '0', '0', '0', '1');

You might want to read up on bitwise string operators*, in the
meantime, I would suggest not using qw// when you are dealing with
numeric values or ensure that your values are numeric by adding 0 to
them before using an operator that has both numeric and string
versions.  By the way, a value is being printed, you just can't see it
because it is character \x{01} (start of heading).

* http://perldoc.perl.org/perlop.html#Bitwise-String-Operators
-- 
Chas. Owens
wonkden.net
The most important skill a programmer can have is the ability to read.

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to