[johnsca@cory johnsca]# cat tst.pl #!/usr/bin/perl my $run = $ARGV[0] + 1; chomp(my $val = ); print "Test #$run: '$val'\n"; system('./tst.pl', $run) unless $run >= 3; [johnsca@cory johnsca]# ./tst.pl foo Test #1: 'foo' bar Test #2: 'bar' baz Test #3: 'baz' [johnsca@cory johnsca]# cat tst.inp foo bar baz quux [johnsca@cory johnsca]# ./tst.pl < tst.inp Test #1: 'foo' Test #2: '' Test #3: '' [johnsca@cory johnsca]# cat tst.inp | ./tst.pl Test #1: 'foo' Test #2: '' Test #3: ''