in reply to Assign multiple items into an array containing the range operator from a file

G'day george59,

Welcome to the Monastery.

I added an extra line to your input file. This tests that non-sequential ranges and numbers with more than one digit work correctly.

$ cat pm_11137734_input.txt [0..1] [2..4] [5..8] [10..13]

Here's the code I used:

#!/usr/bin/env perl use strict; use warnings; use autodie; my $infile = 'pm_11137734_input.txt'; my @values; my $re = qr{^\[(\d+)\.\.(\d+)\]$}; { open my $fh, '<', $infile; /$re/ && push @values, $1 .. $2 while <$fh>; } # For demo purposes only: use Data::Dump; dd \@values;

Output:

[0 .. 8, 10 .. 13]

You have some strange code related to I/O and no error checking. See how I've used open and autodie.

— Ken