Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^9: Shouldn't references be readonly?

by jo37 (Chaplain)
on Aug 05, 2020 at 19:21 UTC ( #11120348=note: print w/replies, xml ) Need Help??


in reply to Re^8: Shouldn't references be readonly?
in thread Shouldn't LITERAL references be readonly? (updated)

This confuses me. Could you explain some of these many other ways to create aliases that end up in something different? An alias creation that does not put a reference into a symbol table entry slot?

Greetings,
-jo

$gryYup$d0ylprbpriprrYpkJl2xyl~rzg??P~5lp2hyl0p$
  • Comment on Re^9: Shouldn't references be readonly?

Replies are listed 'Best First'.
Re^10: Shouldn't references be readonly?
by haukex (Archbishop) on Aug 05, 2020 at 20:30 UTC
    Could you explain some of these many other ways to create aliases that end up in something different?

    I named other ways in this node: @_, foreach, map, grep.

Re^10: Shouldn't references be readonly? (UPDATED)
by LanX (Sage) on Aug 05, 2020 at 19:31 UTC
    sure see Re^6: Shouldn't references be readonly?

    DB<76> sub change { $_[0] = 666 } DB<77> $a=42 DB<78> change($a) DB<79> p $a 666 DB<80> change(42) Modification of a read-only value attempted at (eval 86)[c:/Perl_524/l +ib/perl5db.pl:737] line 2. DB<81>

    still "lame"?

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery

    update

    BUT!!!

    DB<81> sub change_arr { $_[0] = [666] } DB<82> $a=[42] DB<83> change_arr($a) DB<84> x $a 0 ARRAY(0x3363180) 0 666 DB<85> change_arr([42]) #NO ERROR??? DB<86>

      This is no answer to my question. My point is: however created, an alias is a reference to something put into a slot of a symbol table entry. I do not see any evidence in your examples against this claim.

      UPDATE And then again, a de-referenced reference should behave similar to an alias. AFAICS it does.

      Greetings,
      -jo

      $gryYup$d0ylprbpriprrYpkJl2xyl~rzg??P~5lp2hyl0p$
        > put into a slot of a symbol table entry.

        An alias is always a variable true, that's an obvious no-brainer.

        But typeglob mechanisms are only a part of the way to create them.

        Especially in for my $a (@a) { ... } there is no symbol table entry like you claimed. my $a is a private variable and an alias.

        And newer Perl versions allow activating the feature for refaliasing too, again no symbol table.

        Cheers Rolf
        (addicted to the Perl Programming Language :)
        Wikisyntax for the Monastery

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (1)
As of 2023-03-30 20:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Which type of climate do you prefer to live in?






    Results (74 votes). Check out past polls.

    Notices?