use strict; use warnings; my $align_file=$ARGV[0]; #.py (phylip file right now) open (F, $align_file) || die "Could not open $align_file: $!"; my @align_matrix; my %HoTaxids; my @columns; while (my $line = ) { chomp($line); ; # skip firts line of phylip next if $line =~ /^\s*$/; # skip blank lines my ($taxid,$align_line)=split(/\s/,$line); @columns = split(undef, $align_line);#splitting on undef splits each character push (@align_matrix, \@columns); $HoTaxids{$taxid}=1; } close(F); my $num_rows=scalar(keys %HoTaxids); my $align_len=scalar(@columns); for (my $i=0;$i<$num_rows;$i++) { for (my $j=0;$j<$align_len;$j++){ if ($align_matrix[$i][$j] ne $align_matrix[$i][$j+1]) { print "position\t$j\t is not conserved\n"; } } }