I have always considered this a non-problem, because i never use that ref($_[0]) mumbo jumbo. Consider the following code:
The only reason why you need that ref($_[0]) mumbo jumbo is so the the commented out code will work. I never construct a new object from another ... i use Clone instead.my $foo = Foo->new1; print $foo->{bar}; # here is the problem, Jim #my $bar = $foo->new1; #print $bar->{bar}; my $baz = $foo->new2; print $baz->{bar}; package Foo; sub new1 { bless { bar => 'baz' }, $_[0] } sub new2 { bless { bar => 'baz' }, ref($_[0]) || $_[0] }
As for the open stuff, i totally agree ... but if you do really need to abstract open, use IO::File
Again, i do not consider this much of problem because there are clean workarounds.my $fh = foo('foo.pl','r'); print while <$fh>; sub foo { IO::File->new(@_) }
jeffa
L-LL-L--L-LL-L--L-LL-L-- -R--R-RR-R--R-RR-R--R-RR B--B--B--B--B--B--B--B-- H---H---H---H---H---H--- (the triplet paradiddle with high-hat)
In reply to Re: multi-arg bless
by jeffa
in thread multi-arg bless
by ysth
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |