in reply to Re: Variable Abstraction with strict
in thread Variable Abstraction with strict

Yes, that would work in this case, but in general, is there a correct way to perform this abstraction?

What if I want to find the value to $$x, where $x is the name of the scaler variable I am interested in?

Replies are listed 'Best First'.
Re^3: Variable Abstraction with strict
by NetWallah (Canon) on May 27, 2011 at 21:35 UTC
    Re-reading what you say you want, this seems to meet all your requirements:
    my (@a, @b, @c, @d); # create and populate arrays #Define a "Mapping hash": my %aref = (a=>@\a, b=>\@b, c=>\@c, d=>\@d ); # (Same as toolc's solution) my $x = "b"; # I want to access "@b" my $extracted_value_5_from_b = $aref{ $x }->[5]; my @entire_array_b_copy = @{ $aref{ $x } }; # Alternative, closer to the syntax you seek.. my $y = $aref{ b }; for ( @$y ){ # We are iterating through @b here ... } #-- Strict-compliant, maintainable version ... my $z=\@b; for ( @$z ){ # We are iterating through @b here ... }

         Syntactic sugar causes cancer of the semicolon.        --Alan Perlis

Re^3: Variable Abstraction with strict
by NetWallah (Canon) on May 27, 2011 at 19:23 UTC
    Do you mean something like this ?
    perl -e "my (@a,@b,$x); @a=0..5;@b=20..25; for $x(\@a,\@b){print qq|@$ +x;\n|}"
    Prints:
    0 1 2 3 4 5;
    20 21 22 23 24 25;

         Syntactic sugar causes cancer of the semicolon.        --Alan Perlis