Is it possible to read a set of values that include the range operator into an array for further processing or is this disallowed - if so can anyone suggest a workaround as the array set and number of ranges is dynamic and cannot be set directly
Directly writing the ranges into an array works
!/usr/bin/perl use strict; use warnings; my @list = ([0..1], [2..4], [5..8]); my @sets = []; for my $eacharray (@list) { @sets = map { my @prev = @$_; map [ @prev, $_ ], @$eacharray } @sets +; } use Data::Dump 'dd'; dd @sets;
Writing the ranges into an array from a file doesn't
!/usr/bin/perl use strict; use warnings; open my $handle, 'input.txt'; open my $handle, '<', 'input.txt'; chomp(my @list = <$handle>); close $handle; my @sets = []; for my $eacharray (@list) { @sets = map { my @prev = @$_; map [ @prev, $_ ], @$eacharray } @sets +; } use Data::Dump 'dd'; dd @sets; The input.txt file is: [0..1] [2..4] [5..8]
In reply to Assign multiple items into an array containing the range operator from a file by george59
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |