sub c3 { print "Evaluating condition 3\n"; /gamma/; } sub c4 { print "Evaluating condition 4\n"; /omega/; } while () { chomp; mff(qr/alpha/ => \&s1, qr/beta/ => \&s2, \&c3 => \&s3, c4() ) or print "*:$_\n"; } #### Evaluating condition 4 *:This is Evaluating condition 4 1:the alpha Evaluating condition 4 1:but not Evaluating condition 4 1:the omega Evaluating condition 4 2:Now the beta Evaluating condition 4 Evaluating condition 3 2:progressing to Evaluating condition 4 Evaluating condition 3 *:the gamma Evaluating condition 4 *:and finally Evaluating condition 4 *:the omega Evaluating condition 4 *:Did this work?