in reply to why this function call print 9
use strict; use warnings; - What is the break; doing? What do you expect f1(@3, to do?