http://qs321.pair.com?node_id=1217270


in reply to Overloading Weirdness

Hello pudge,

I tried separating your str package into its own module/file, and then useing it in the main script:

use strict; use warnings; use 5.010; use Data::Dumper; $Data::Dumper::Sortkeys = 1; use lib qw(.); use str; ...

The output may be closer to what you were wanting (if I’ve understood correctly):

$VAR1 = { 'BAD' => [ bless( [ bless( [ 'a ', bless( do{\(my $o = 'foo')}, 's +tr' ) ], 'str' ), ' a' ], 'str' ), bless( [ bless( [ $VAR1->{'BAD'}[0][0][1], ' ' ], 'str' ), bless( do{\(my $o = 'bar')}, 'str' ) ], 'str' ), bless( [ bless( [ bless( [ bless( [ 'a ', $VAR1->{'BAD' +}[0][0][1] ], 'str' ), ' a ' ], 'str' ), $VAR1->{'BAD'}[1][1] ], 'str' ), ' a' ], 'str' ) ], 'GOOD' => [ bless( [ bless( [ $VAR1->{'BAD'}[0][0][1], ' ' ], 'str' ), $VAR1->{'BAD'}[1][1] ], 'str' ), $VAR1->{'GOOD'}[0], bless( [ $VAR1->{'BAD'}[0][0][1], ' a' ], 'str' ) ] }; $VAR1 = { 'BAD_GOOD' => [ bless( [ '', bless( [ bless( [ 'a ', bless( do{\(my $o + = 'foo')}, 'str' ) ], 'str' ), ' a' ], 'str' ) ], 'str' ), bless( [ '', bless( [ bless( [ $VAR1->{'BAD_GOOD +'}[0][1][0][1], ' ' ], 'str' ), bless( do{\(my $o = 'bar') +}, 'str' ) ], 'str' ) ], 'str' ), bless( [ '', bless( [ bless( [ bless( [ bless( [ + 'a ', + $VAR1->{'BAD_GOOD'}[0][1][0][1] ] +, 'str' ), ' a ' ], 'str' ) +, $VAR1->{'BAD_GOOD +'}[1][1][1] ], 'str' ), ' a' ], 'str' ) ], 'str' ) ] }; 17:03 >

I don’t pretend to know exactly what’s going on (I have the ’flu, my head is more than usually woolly), but perhaps this will help you towards a solution.

Cheers,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,