#!/usr/bin/env perl use strict; use warnings; use Scalar::Util qw(looks_like_number); die "usage: $0 threshold file […]\n" unless $#ARGV > 0; my $threshold = shift; my $header = <>; chomp $header; my @headers = split /,/, $header; while (<>) { chomp; my @parts = split /,/; for (my $i=1; $i <= $#headers; $i++) { if (defined $parts[$i] && looks_like_number($parts[$i])) { # print STDERR "#h: $#headers #p: $#parts\n"; # print STDERR "parts: @parts\n"; my $similarity = $parts[$i]; print "$parts[0],$headers[$i]\n" if $similarity > $threshold; } } }