related to question: How do I substitute with an evaluated expression in Perl?
In Perl, is there a way like in Ruby to do:
$a = 1;
print "#{$a + 1}";
and it can print out 2
?
There's a similar shorthand in Perl for this:
$a = 1;
print "@{[$a + 1]}"
This works because the []
creates a reference to an array containing one element (the result of the calculation), and then the @{}
dereferences the array, which inside string interpolation prints each element of the array in sequence. Since there is only one, it just prints the one element.