#!"C:\perl\bin\perl.exe" use warnings; use strict; open(INFILE, '<', 'test_data.txt') or die("open failed: $!"); while () { my ($ezb, $numbers) = split(';',$_); my( $pre, $in, $post )= $numbers =~ /^ ([^()]*) \( ([^()]*) \) ([^()]*) $/x; #my @number_split = split(',', $numbers); print "$pre\t$in\t$post\n"; } #### 201.1;201(27, 28, 3, 4, 83, 84, 890, 897, 898, 9), 2054 201.2;201(1, 20-26, 29, 80-82, 891-896, 899) 201.3;201(52-54, 6, 75, 76, 85-88) 201.4;201(50, 51, 55-59, 70-74, 77-79) #### 2302.1;2302, 2304(3-8, 92-99), 2305(2, 4-9) 231.1;2301, 2303, 2304(1, 2, 90, 91), 2305(1, 3), 2306, 2307, 2308