Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: tie() weirdness

by ikegami (Patriarch)
on Nov 21, 2005 at 14:31 UTC ( [id://510442]=note: print w/replies, xml ) Need Help??


in reply to tie() weirdness

Concatenation of a list can be implemented as

$str = concat($s1, $s2); $str = concat($str, $s3); $str = concat($str, $s4);

Notice the first case is special. Maybe what you're seeing is related to this?

Replies are listed 'Best First'.
Re^2: tie() weirdness
by blazar (Canon) on Nov 21, 2005 at 15:03 UTC

    It may well be, since

    print $s . $s . $s; # still produces the "error", print '' . $s . $s . $s; # makes it go away, # But! print join '', $s, $s, $s; # is fine,

    The latter should still be essentially a concatenation in which the first element of the list is the tied variable. So what we're observing should result from an interaction between the tie mechanism and the concatenation operator.

    BTW: it is well known that when a bare variable is passed as the first argument of a join, it is re-evaluated every time it's needed, and

    print join $s, ('') x 4;

    gives me (with the code of Re^2: tie() weirdness)

    FETCH called! FETCH called! FETCH called! FETCH called! 123

    which is unexpected too, but can be understood in terms of an extra-evaluation.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (5)
As of 2024-04-23 15:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found