$ ls -al a_real_dir total 4 drwxr-xr-x 1 ken None 0 Nov 19 18:20 . drwxr-xr-x 1 ken None 0 Nov 19 19:10 .. -rw-r--r-- 1 ken None 0 Nov 19 18:20 demo_file_A -rw-r--r-- 1 ken None 0 Nov 19 18:20 demo_file_B $ ls -al not_a_real_dir ls: cannot access 'not_a_real_dir': No such file or directory #### #!/usr/bin/env perl use strict; use warnings; use autodie; use HTML::Escape 'escape_html'; my %commands = (ls => '/usr/bin/ls -al'); my @targets = qw{a_real_dir not_a_real_dir}; my $program = 'ls'; print "\n...\n\n"; for my $target (@targets) { my $cmd = "$commands{$program} $target 2>&1"; print '

', escape_html($cmd), "

\n
\n";

    {
        open my $cmd_pipe, '-|', $cmd;
        print escape_html($_) while <$cmd_pipe>;
    }

    print "
\n"; } print "\n\n"; ##
## ...

/usr/bin/ls -al a_real_dir 2>&1

total 4
drwxr-xr-x 1 ken None 0 Nov 19 18:20 .
drwxr-xr-x 1 ken None 0 Nov 19 19:10 ..
-rw-r--r-- 1 ken None 0 Nov 19 18:20 demo_file_A
-rw-r--r-- 1 ken None 0 Nov 19 18:20 demo_file_B

/usr/bin/ls -al not_a_real_dir 2>&1

/usr/bin/ls: cannot access 'not_a_real_dir': No such file or directory