Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re: Elegantly dereferencing multiple references

by polettix (Vicar)
on May 19, 2016 at 14:52 UTC ( [id://1163485]=note: print w/replies, xml ) Need Help??

in reply to Elegantly dereferencing multiple references

Others pointed out about using the reference directly with the -> dereferencing syntax. That's what I would do.

As of perl 5.22 you can also use refaliasing. In your specific example - where you want to modify the input hashes - you might do as follows:

#!/usr/bin/env perl use strict; use warnings; use Data::Dumper; use 5.024; use feature 'refaliasing'; no warnings 'experimental::refaliasing'; my %x = ("a" => "red"); my %y = ("b" => "green"); my %z = ("c" => "black"); modfifyHash(\(%x, %y, %z)); say Dumper \(%x, %y, %z); sub modfifyHash { \my (%x, %y, %z) = @_; $x{ "a" } = "circle"; $y{ "b" } = "square"; $z{ "c" } = "rectangle"; } __END__ $VAR1 = { 'a' => 'circle' }; $VAR2 = { 'b' => 'square' }; $VAR3 = { 'c' => 'rectangle' };
This is probably the closest approximation to pass-by-reference without resorting to prototypes (it only costs you two backslashes in this case).

perl -ple'$_=reverse' <<<ti.xittelop@oivalf

Io ho capito... ma tu che hai detto?

Log In?

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (2)
As of 2024-05-27 07:56 GMT
Find Nodes?
    Voting Booth?

    No recent polls found