Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^4: No garbage collection for my-variables

by ikegami (Pope)
on Sep 17, 2008 at 03:02 UTC ( #711851=note: print w/ replies, xml ) Need Help??


in reply to Re^3: No garbage collection for my-variables
in thread No garbage collection for my-variables

Are

chomp( my $var = <$fh> );

and

chomp( my $dst = $src );
really more tedious and uglier than
my $var = chomp( scalar ( <$fh> ) );

and

my $dst = chomp( $src );


Comment on Re^4: No garbage collection for my-variables
Select or Download Code
Re^5: No garbage collection for my-variables
by w-ber (Hermit) on Sep 17, 2008 at 08:20 UTC

    They are. funcall(<variable assignment>) is a useful idiom in programming languages where assigment returns (an alias to) the value of the variable, but it is counter-intuitive at first. Even though I have been programming in Perl and curly brace block syntax languages for years, I still find it hard to read -- mostly because when you normally delimit my with braces, you create a new lexical scope. That's what chomp(my $foo = bar) still seems to be, even if I know better and use the idiom frequently.

    Not only that, but it is not obvious that the value of $var in chomp(my $var = <$fh>) is being modified at all! After all, assignment, if used in other contexts, returns the value, not a reference to it. my $foo = $bar = 1 doesn't create a reference in $foo, but sets the value of both variables to 1. In fact, I am not sure what the underlying mechanism is. Does it work because assignment returns an alias similar to aliased values in @_ in function calls?

    Side-effect free chomp has no similar conceptual problems.

    --
    say "Just Another Perl Hacker";

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (6)
As of 2015-07-07 03:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (87 votes), past polls