#!/usr/bin/perl use strict; use IO::All; use warnings; use Data::Dumper; my $output = io('out.txt'); my @lines = io('in.txt')->chomp->slurp; my %hash; while (defined(my $str = shift @lines)) { if (index($str, 'XX') != -1) { my @array = split /=/, $str; $array[1] =~ s/^\s+|\s+$//g; $hash{$array[1]} = $array[0]; } } my @final = keys %hash; print Dumper \@final; while (defined(my $strOut = shift @final)) { $output->write ($strOut . "\n"); } __END__ $ perl test.pl $VAR1 = [ 'XX00011', 'XX111X1', 'XX0001X', 'XX0010X', 'XX00X1X', 'XX0011X', 'XXXX0XX', 'XX01X10', 'XXX1XX0', 'XX010X1', 'XX11XX0', 'XX110X1', 'XX0X0X1', 'XXXX1XX', 'XX0X10X', 'XX1XXXX', 'XX1X0X1', 'XX00X11', 'XX0XX1X', 'XX110X0', 'XXX0XX0', 'XX11XXX', 'XX10XX0' ]; $ cat out.txt XX00011 XX111X1 XX0001X XX0010X XX00X1X XX0011X XXXX0XX XX01X10 XXX1XX0 XX010X1 XX11XX0 XX110X1 XX0X0X1 XXXX1XX XX0X10X XX1XXXX XX1X0X1 XX00X11 XX0XX1X XX110X0 XXX0XX0 XX11XXX XX10XX0