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?