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
In reply to Re: Assign multiple items into an array containing the range operator from a file
by kcott
in thread Assign multiple items into an array containing the range operator from a file
by george59
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |