On Thu, Jul 23, 2009 at 3:49 PM, Jacinta Richardson <span dir="ltr"><<a href="mailto:jarich@perltraining.com.au">jarich@perltraining.com.au</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">Sam Vilain wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
But surely you want to know another way, using scalar:<br>
$ib->{reg}{scalar LATEST_D_ACROSS_PRODUCTS}<br>
</blockquote>
<br></div>
You might also see:<br>
<br>
$ib->{reg}{ LATEST_D_ACROSS_PRODUCTS . "" }<br>
<br>
but I think the @{[ ... ]} is cute, but terrible. This is the same trick required for __PACKAGE__ and similar.<div><div></div><div class="h5"></div></div></blockquote><div><br>Of course, you don't want to be using that in the event LATEST_D_WHATEVER is in fact an array-returning constant doing parallel hash assignment :) <br>
<br>#!/usr/bin/perl<br>use strict;<br>use warnings;<br><br>use Moose::Autobox;<br><br>local $Data::Dumper::Indent = $Data::Dumper::Indent = 0;<br>local $Data::Dumper::Terse = $Data::Dumper::Terse = 1;<br><br>sub FOO() {<br>
'bar', 'baz';<br>}<br><br>my %hash;<br><br>@hash{ (FOO) } = ( 1, 2 );<br><br>%hash->dump->say; # {'bar' => 1,'baz' => 2}<br><br>@hash{ FOO() } = ( 3, 4 );<br><br>%hash->dump->say; # {'bar' => 3,'baz' => 4}<br>
<br>@hash{FOO} = ( 5 ); # Scalar value @hash{FOO} better written as $hash{FOO} at /tmp/ex.pl line 24.<br><br>%hash->dump->say; # {'bar' => 3,'baz' => 4,'FOO' => 5}<br><br>@hash{FOO . "" } = ( 6 );<br>
<br>%hash->dump->say; # {'bar' => 3,'baz' => 6,'FOO' => 5}<br><br>@hash{FOO . "" } = ( 7, 8 );<br><br>%hash->dump->say; # {'bar' => 3,'baz' => 7,'FOO' => 5}<br>
<br><br></div></div>-- <br>Kent <br><br>perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3, 3 ) for ( 9,8,0,7,1,6,5,4,3,2 );"<br><br><a href="http://kent-fredric.fox.geek.nz">http://kent-fredric.fox.geek.nz</a><br>