#!/usr/bin/perl use warnings; use strict; sub process_column { my ($patient, $column, $fh_out) = @_; if ($column =~ m/\[R\]/) { if (my @vars = $column =~ m/\](.*?)\[/g) { for my $var (@vars) { if ($var !~ /^\s+$/g) { print {$fh_out} "$patient || $var\n"; } } } } } open my $OUTFILE, '<', 'C:/Scripts/TEST/History21.txt' or die "Could not open source file. $!"; open my $NEW_MED, '>', 'C:/Scripts/TEST/History_MED1.txt' or die "Could not open target file. $!"; open my $NEW_SUR, '>', 'C:/Scripts/TEST/History_SUR1.txt' or die "Could not open target file. $!"; my $count = 1; while (my $line = <$OUTFILE>) { my @rows = split /\|\|/, $line; process_column($rows[0], $rows[1], $NEW_MED); process_column($rows[0], $rows[2], $NEW_SUR); $count++; } close $NEW_SUR or die "Cannot close target file: $!"; close $NEW_MED or die "Cannot close target file: $!"; print "COUNT: $count\n"; #### ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,