Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re^4: Text::ExtractWords exhibits incomprehensible behavior?

by NERDVANA (Priest)
on Jun 18, 2024 at 00:44 UTC ( [id://11160054]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Text::ExtractWords exhibits incomprehensible behavior?
in thread Text::ExtractWords exhibits incomprehensible behavior?

Yes, @_ is always an alias for the actual variables that were passed to the function. It's generally bad to modify the caller's variables, but in some cases it gives a nice performance boost.

Since you're just learning this, you should also know that for-loops do the same thing, even if you declare the loop variable with 'my'. IMHO they should have made it so that 'for my' de-aliases the loop item, and a different syntax for the (more efficient) aliasing behavior. Perl didn't have an internal copy-on-write back then though, so this was probably done for efficiency even though it's a bit of a foot-gun.

sub modify_it { $_[0]= 11; } my $x= 10; for my $y ($x) { modify_it($y); } say $x; // $x is now 11

Replies are listed 'Best First'.
Re^5: Text::ExtractWords exhibits incomprehensible behavior?
by ibm1620 (Chaplain) on Jun 18, 2024 at 14:05 UTC
    Very enlightening. Thanks.

    I did learn about 'for my', the hard way.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (2)
As of 2026-04-13 23:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.