Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Re: inheritance turns back and bites

by borisz (Canon)
on Mar 01, 2004 at 13:51 UTC ( #332895=note: print w/ replies, xml ) Need Help??


in reply to Re: inheritance turns back and bites
in thread inheritance turns back and bites

sub new { bless \pop, shift } it's like doing sub new { bless \42, "MyNumber" } and you can't bless a constant into an object. so do my $arg = pop; bless \$arg, shift
I do not think this is wrong, since \pop is like \pop @_ and whatever I pop it is pushed and a pushed constant is a scalar.
Boris


Comment on Re: Re: inheritance turns back and bites
Re: Re: Re: inheritance turns back and bites
by tinita (Parson) on Mar 01, 2004 at 14:01 UTC
    sorry, but:
    perl -wle' sub new { bless \pop, shift } my $main = new ("ClassName", 42);' Modification of a read-only value attempted at -e line 2. This is perl, v5.6.1 built for i586-linux This is perl, v5.8.0 built for i686-linux

    am i overlooking something?

    Update: same result with
    This is perl, v5.8.2 built for i686-linux

      Interesting, your sample code did _not_ result in a errormessage for me on linux with perl 5.8.1! But it does with my old perl 5.6.1 on the same machine.
      Boris
        oh, interesting. i have 5.8.2 only at home, i'll try with that later. but i can't find anything about that in the perldelta.pod of 5.8.1...
      you are correct, but there should be something strange going on under the hood. it seems only Windows allows the bless \pop, shift trick.

      This is perl, v5.8.0 built for MSWin32-x86-multi-thread -> ok
      This is perl, v5.8.2 built for cygwin-thread-multi-64int -> ok
      This is perl, v5.8.0 built for i686-linux -> dies

      sorry for not checking this beforehand. however, the reason why it works on a platform and fails on another is beyond the scope of this thread :-)

      cheers,
      Aldo

      King of Laziness, Wizard of Impatience, Lord of Hubris

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://332895]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (8)
As of 2014-12-22 02:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (110 votes), past polls