I would like to set arrays indirectly in Perl -


i have file every 4 lines there block of information. have set 4 arrays named @linearray1, @linearray2, @linearray3, @linearray4.

i have counter gets incremented every 4 lines called $lineno.

i set 4 arrays , parse them out appropriately.

but rather set them directly 4 times in 1 line , check $lineno @ 5 rest.

so rather writing out : @linearray1=split(",",$_)

i want like: @linearray.$lineno=split(",",$_);

don't generate variable names.

instead, use

@{ $lines[$lineno] } = split /,/; 

or more directly:

$lines[$lineno] = [ split /,/ ]; 

or even

push @lines, [ split /,/ ]; 

you can access elements using

for $lineno (0..$#lines) {    join ', ', @{ $lines[$lineno] }; } 

or

for $line (@lines) {    join ', ', @$line; } 

remember use use strict; use warnings;!


Comments

Popular posts from this blog

c++ - Creating new partition disk winapi -

Android Prevent Bluetooth Pairing Dialog -

VBA function to include CDATA -