#! /usr/bin/perl ## encodes quality bits @bits=(); print "Enter Quality Bit (0-31, 'q' to quit): "; chomp( $bit = ); while ($bit ne "q") { if ( ($bit =~ /\d{1,2}/ ) && ($bit >= 0) && ($bit <= 31) ) { @bits = ($bit,@bits); print "Enter Quality Bit (0-31, 'q' to quit): "; chomp( $bit = ); } else { print "Oops...Enter Quality Bit (0-31, 'q' to quit): "; chomp( $bit = ); } } %seen = (); @uniq = (); foreach $item ( @bits ) { unless ($seen{$item}) { $seen{$item} = 1; push (@uniq,$item); } } $i = 0; while ( $i <= 31 ) { $qual{$i} = 0; $i++; } foreach $bit ( @bits ) { $qual{$bit} = 1; } $i = 31; print "\n"; while ( $i >= 0 ) { print "$qual{$i}"; $i--; } print "\n\n"; $j = 0; $k = 1; @bit_value = (); while ( $k <= 8 ) { $total = (1*$qual{$j}) + (2*$qual{$j+1}) + (4*$qual{$j+2}) + (8*$qual{$j+3}); if ( $total > 9 ) { $total = "a" if ( $total == 10 ); $total = "b" if ( $total == 11 ); $total = "c" if ( $total == 12 ); $total = "d" if ( $total == 13 ); $total = "e" if ( $total == 14 ); $total = "f" if ( $total == 15 ); } @bit_value = ($total, @bit_value); $j = $j + 4; $k++; } print "Quality expression is "; $n = 0; while ( $n <= 7) { print "$bit_value[$n]"; $quality = $quality.$bit_value[$n]; $n++; } print "\n$quality: \n"; system ("decode $quality" );