Go through the below codes.

use strict;
use warnings;

my $scalar = "aaaba" =~ /a/g;
my @list   = "aaaba" =~ /a/g;
my $list_then_scalar =()= "aaaba" =~ /a/g;
print "scalar: $scalar\nlist: @list\nlist then scalar: $list_then_scalar\n";

$scalar="aaaba";
my $count = $scalar =~ tr/a//;
print "\n\nCount=$count\nScalar = $scalar";


Output:

scalar: 1
list: a a a a
list then scalar: 4


Count=4
Scalar = aaaba


Now the same code without initializing $scalar second time.

use strict;
use warnings;

my $scalar = "aaaba" =~ /a/g;
my @list   = "aaaba" =~ /a/g;
my $list_then_scalar =()= "aaaba" =~ /a/g;
print "scalar: $scalar\nlist: @list\nlist then scalar: $list_then_scalar\n";

my $count = $scalar =~ tr/a//;
print "\n\nCount=$count\nScalar = $scalar";

Output:

scalar: 1
list: a a a a
list then scalar: 4


Count=0
Scalar = 1


Please explain this behavior i.e. why the values of count & scalar are 0 & 1
respectively?
 


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


Reply via email to