#-*-Mode: perl;-*- @subjectIDs = ('S1', 'S2', 'S3', 'S4', 'S5', 'S6', 'S7', 'S8', 'S9', 'S10', 'S12', 'S13', 'S14', 'S15', 'S17', 'S18', 'S19', 'S20', 'S22', 'S23', 'S24', 'S25', 'S26', 'S27', 'S28', 'S29'); $quads = ' vup,hRk;vuk,hRp:rup,nRk;ruk,nRp Quz,qRk;Quk,qRz:quz,TRk;quk,TRz vyg,neD;vyD,neg:syg,deD;syD,deg gym,zAb;gyb,zAm:pym,SAb;pyb,SAm zyT,dAb;zyb,dAT:jyT,vAb;jyb,vAT '; @lines = <>; #Crosscheck: everybody there? # #for $line (@lines) { # ($syll, @responses) = split(/\s+/, $line); # next unless $syll; # die "$syll not in $quads" unless $quads =~ /\W$syll\W/; #} #@sylls = split(/\W+/, $quads); #shift @sylls; #for $syll (@sylls) { # $found = 0; # for $line (@lines) { # $found = 1 if $line =~ /^$syll\W/; # } # die "$syll not in exp2" unless $found; #} for $line (@lines) { chop $line; ($syll, $responses) = $line =~ /^(\w+)\s+(.+)$/; next unless defined $syll; $responses{$syll} = $responses; } @quad2s = split(/\s+/, $quads); shift @quad2s; for $quad2 (@quad2s) { @quads = split(/:/, $quad2); for $quad (@quads) { &DoQuad($quad); } print "-----------------------\n"; } sub DoQuad { local($quad) = @_; ($hi, $lo) = split(/;/, $quad); ($hi1, $hi2) = split(/,/, $hi); print "hi = $hi1 and $hi2\n"; ($lo1, $lo2) = split(/,/, $lo); print "lo = $lo1 and $lo2\n"; @hi1scores = split(/\s+/, $responses{$hi1}); @hi2scores = split(/\s+/, $responses{$hi2}); @lo1scores = split(/\s+/, $responses{$lo1}); @lo2scores = split(/\s+/, $responses{$lo2}); $nHiExceedsLo = 0; print "Subjects that score both highs above both lows:"; for ($subj = 0; $subj < @hi1scores; $subj++) { if ($hi1scores[$subj] > $lo1scores[$subj] && $hi2scores[$subj] > $lo1scores[$subj] && $hi1scores[$subj] > $lo2scores[$subj] && $hi2scores[$subj] > $lo2scores[$subj]) { $nHiExceedsLo++; print " $subjectIDs[$subj]"; } } print "\n$nHiExceedsLo subjects.\n\n"; }