STEP CODE MEANING IT IS NOW... 1 &main(); call 'main', no arguments undef 2 my @mylist = qw(a b c); create and define @mylist undef 3 foreach(@mylist) iterate over @mylist undef 3a iteration 1 it is now "a" 4 &fun($_); &fun(it) "a" 5 open(STATUS, "echo d-e-f|"); echo "d-e-f" into new fh STATUS "a" 6 while () sequentially read lines "a" 6a iteration 1: read it. it is now "d-e-f" 7 if (/d-e-f/) if it matches (and it does), "d-e-f" 8 close(STATUS) close the FH "d-e-f" 9 return; go back to whence we came "d-e-f" 10 print "changed: \$_ $_\n" print it "d-e-f" 3b iteration 2 it is now "b" ...snip...