##
#!/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