#!/usr/bin/perl use strict; use warnings; my %values; while (my $line = ) { if ($line =~ /(\w)_(r|ch)ange\s(\S+)/) { $values{$1}{$2."ange"} = $3; } } for my $ key(sort keys %values) { if ($values{$key}{'change'} != $values{$key}{'range'}) { print "Not "; } print "Equal:\nChange: $values{$key}{change}\nRange : $values{$key}{range}\n\n"; } __DATA__ var_a_change 101.945484 var_a_range 101.945484 var_b_change -80.5498336616321 var_b_range -80.5498336616321 var_c_change 45142.388774415 var_c_range 45142.388774415 var_d_change -159.905028384 var_d_range -159.905028384 var_e_change -159.905028384 var_e_range -159.905028384 var_f_change 181.019658002611 var_f_range 181.019658002611 var_g_change 1.57615706403821 var_g_range 1.57615706403821