http://www.perlmonks.org?node_id=839911

bichonfrise74 has asked for the wisdom of the Perl Monks concerning the following question:

Below is my code.
#!/usr/bin/perl use strict; use warnings FATAL => 'all'; my $pid = fork(); my $output; if ($pid) { print "forking child.\n"; $output = qx( lst 2>&1 ); } waitpid ($pid, 0); print $output; __OUTPUT__ Use of uninitialized value in print at 2.pl line 15. forking child. Can't exec "lst": No such file or directory at 2.pl line 11.
Questions:
1. Why am I getting the uninitialized value message? Line 15 is the print $output.
2. Why is the error showing up first? Shouldn't it "wait" until the child is finished before attempting to print the output?
3. If I remove 'use warnings...', then I will not see the uninitialized message. But print $output will not show me anything.