in reply to use of typeglob aliases

Another point: the typeglob technique works only if @array is a global (package) variable:

2:29 >perl -MData::Dump -wE "my @array = (10, 20); Double(*array); dd + @array; sub Double { local *copy = shift; for my $element (@copy) { +$element *= 2; } }" Name "main::array" used only once: possible typo at -e line 1. (10, 20) 2:29 >

The following code, using a reference instead of a typeglob, performs the equivalent operation, but is more flexible, as @array may be either a global or a lexical:

2:29 >perl -MData::Dump -wE "my @array = (10, 20); Double(\@array); d +d @array; sub Double { my $array_ref = shift; for my $element (@$arra +y_ref) { $element *= 2; } }" (20, 40) 2:30 >

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Replies are listed 'Best First'.
Re^2: use of typeglob aliases
by AnomalousMonk (Archbishop) on Sep 05, 2013 at 19:32 UTC
    ... the typeglob technique ...

    I know that Athanasius is aware of this, but note that while the approach used in the OP and referred to above of taking and passing a 'pure' typeglob reference has the drawback of only working with globals, the approach of BrowserUk here works with both global (i.e., package) and lexical variables.