Neeraj,
If you print an array inside double quotes, each item of the array is separated
by the value specified in Perl special variable $" which is the Output list
separator. (interpolated lists)
By default the value of $" is space
So you can rewrite your code modifying the Output list separator
#Example 1
## check Array vis-a-vis List
@arr = qw <hello happy new year 2013>;
{
local $" = "";
print "my array is : @arr \n";
}
## lets print in a loop
my $i = 0;
while ($i <= $#arr)
{
print $arr[$i];
$i += 1;
}
print "\n";
or place the array outside double quotes,in such case interpolation will not
happen.
#Example 2
## check Array vis-a-vis List
@arr = qw <hello happy new year 2013>;
print "my array is : ", @arr, "\n";
## lets print in a loop
my $i = 0;
while ($i <= $#arr)
{
print $arr[$i];
$i += 1;
}
print "\n";
best,
Shaji
-------------------------------------------------------------------------------
Your talent is God's gift to you. What you do with it is your gift back to God.
-------------------------------------------------------------------------------
________________________________
From: Neeraj <[email protected]>
To: [email protected]
Sent: Wednesday, 2 January 2013 4:05 PM
Subject: Array vs List output
Hi,
I am new to Perl and perplexed with output of printing entire Array vs
printing each element
+4 ## check Array vis-a-vis List
+5
+6 @arr = qw <hello happy new year 2013>;
+7 print "my array is : @arr \n";
+8
+9 ## lets print in a loop
+10 my $i = 0;
+11 while ($i <= $#arr)
+12 {
+13 print $arr[$i];
+14 $i += 1;
+15 };
+16 print "\n";
I expected the output of printing Array in line 7 to be same as printing
each element.
However, output of line 7 is : hello happy new year 2013
while printing each element: hellohappynewyear2013
Why do i have white-space between words when printing array while not
getting white-space when printing individual element.
Thanks,
Neeraj