
dvinciguerra
(usa Debian)
Enviado em 05/08/2011 - 21:27h
Existe uma necessidade real para o uso do Shell Script?
Digo isso porque Perl porde e faz tudo que um script bash
faz...
Não é muito usual fazer uma implementação deste tipo tendo
em mente sempre que você esbarra em inumeros aspectos
relacionados a segurança, controle e performance da sua
aplicação.
Contudo, tendo alertado você sobre o risco, posto um exemplo
de como você poderia fazer isso de forma simples.
use CGI;
# creating a new CGI object
my $cgi = CGI->new;
# list directory files if button clicked
my $list = "";
if($cgi->param) {
opendir my $dir, './' or die $!;
foreach ( readdir($dir) ) {
$list .= "<p>$_</p>" if $_ ne '.' && $_ ne '..';
}
closedir $dir;
}
# print output Html
print $cgi->header;
print qq{
<h2>Execute SysCall By Perl</h2>
<form method="post">
<input type="hidden" name="__mode" value="execute">
<input type="submit" value="Execute" />
$list
</form>
};
Este trecho de código faz uma simples listagem no diretório
e exibe os nomes dos arquivos em lista.
Não usa Shell Script mas para isso bastaria um simples:
use IPC::Open3::Simple;
...
$ipc->run('...');
Leia a documentação deste módulo para mais informações:
http://search.cpan.org/~erwan/IPC-Open3-Simple-0.04/lib/IPC/Open3/Simple.pm
Qualquer duvida me avise!
Forte abraço,