http://www.perlmonks.org?node_id=851351

changma_ha has asked for the wisdom of the Perl Monks concerning the following question:

i have a database of student name and score of 5 subjects....and the problem is if a student score is less than 50 in any subject then i have to print out the corresponding student name and the subject or subjects in which he score less than 50.here i made the database but having probs in printing out the subject name when he score less than 50 in more than 1 subject..i want the output to be like

Amir fails in : english Maths hindi

if the marks in these 3 subjects is less than 50.

i have written the code like

#!/usr/bin/perl #%studentbase is the hash, my @header = ("Name","English", "History", "Maths","Science","Geography"); $studentcount =0; while ($input =<STDIN>){ $input=~ s/^\s+|\s+\n$//g;#remove the heading n trailing space @subinfo = split (/\s+/,$input); $studentlist[$studentcount++]= $subinfo[0]; for ($count =1; $count <=@subinfo;$count++){ $studentbase{$subinfo[0].$header[$count-1]}=$subinfo[$count-1] +; } } foreach $student(@studentlist){ print " $student fails in :"; for ($count=1;$count <=@subinfo; $count++){ if ($subinfo[$count] <= 50){ print" $header[$count]"; } } }

I am able to get the output for a single line of input but when i give more that 1 line of input I am not able to get the desire output. plz help