in reply to Re: [substr] anomaly or mine?
in thread [substr] anomaly or mine?

Your first EXPECT does not fully distinguish the actual behaviour that feels anomalous:
my $s = 'ABCDE'; print substr($s,0,2)=''; # EXPECT 'CD' or 'CDE'?
The actual is 'CD'; intuition would expect 'CDE'

perhaps a better test case is

my $s = 'ABCDE'; print substr($s,0,2)='1'; # EXPECT '1C' or '1CDE'?
again, actual is "1C". --Dave

Replies are listed 'Best First'.
Re: Re: Re: [substr] anomaly or mine?
by Chmrr (Vicar) on Aug 20, 2002 at 01:47 UTC

    My intuition would expect:

    my $s = 'ABCDE'; print substr($s,0,2)='',$/; # EXPECT '', GET 'cd'? print substr($s,0,2)='foo',$/; # EXPECT 'foo', GET 'fo'?

    ..in parallel with all other assignments:

    my $s = 'ABCDE'; print $s='',$/; # EXPECT '' print $s='foo',$/; # EXPECT 'foo'

    perl -pe '"I lo*`+$^X$\"$]!$/"=~m%(.*)%s;$_=$1;y^`+*^e v^#$&V"+@( NO CARRIER'