If it is so, , how will this code end after printing "I saw whateverentered"

As there is no "defined" used in while loop , so how will while loop end because undefined value in the $_ will not let the loop end.

3) while(defined($_= <stdin>)){print "I saw $_ " ;}

In either of these three codes, output is the same.

While I was going thru book, it is stated for the first code "Read a line of input and see if its true. And if its true, enter the while loop but throw away that line of input." What does this mean ? Does it mean that line of input will be read but not printed ? Why not ? Because by default any input will be assigned to $_.