#!/usr/local/bin/perl use strict; use warnings; use Tie::File; print "Enter the filename to analyze (we can hardwire this later): "; chomp ( my $filename = ); open my $FILE, '<', $filename or die "Can't read the source: $!"; open my $CHECK, '>', "Space_Nukes_Rule_$filename" or die "Can't open output file: $!"; open my $OUT, '>', "Out_Space_Nukes_Rule_$filename" or die "Can't open output file: $!"; my ($i, $j, $popindex, $array, $arraytemp); my (@array, @subarray, @arraytemp, @data, @line, @INFILE); tie @INFILE, 'Tie::File', $FILE or die "dieeeee"; for ( $i=0; $i<@INFILE; $i++ ) { if ( $INFILE[$i] =~ /^mt?\d+/ ) { @arraytemp = ( split qr/\$/s, $INFILE[$i] ); @array = ( split qr/\s+/s, $arraytemp[0] ); $array=@array; for ( $j=1; $j<$array; $j=$j+2) { push @data, "$array[$j]\n"; } $i++; until ( $INFILE[$i] =~ /^c/ or $INFILE[$i] =~ /^mt?\d+/ ) { @arraytemp = ( split qr/\$/s, $INFILE[$i] ); @array = ( split qr/\s+/s, $arraytemp[0] ); $array=@array; for ( $j=1; $j<$array; $j=$j+2) { push @data, "$array[$j]\n"; } $i++; } $i--; } } print $CHECK "@data\n"; my %hash = map { $_, 1 } @data; my @unique_data = keys %hash; print $OUT "@unique_data";