#!/usr/bin/perl use strict; use warnings; use 5.010; open (TRACK1, ">", "track1.txt") or die "Can't open track1.txt : $!"; open (TRACK2, ">", "track2.txt") or die "Can't open track2.txt : $!"; open (TRACK3, ">", "track32.txt") or die "Can't open track3.txt : $!"; while (<>) { if(/name="track1/ .. /^1_000/){ print TRACK1; } elsif(/name="track2/ .. /^5_000/) { print TRACK2; } elsif(/name="track3/ .. /^20_000/) { print TRACK3; } #no 'else' here. }