Perl, эквивалентный из escapeshellarg PHP

Для выхода из строки, которая будет использоваться в качестве аргумента оболочки, мы используем функцию escapeshellarg() в PHP. Делает Perl имеет эквивалентная функция?

14
задан Zacky112 9 July 2010 в 11:25
поделиться

2 ответа

String::ShellQuote, но чаще всего в этом нет необходимости. Вы просто можете избежать вызова оболочки путем тщательного программирования. Например, system принимает список аргументов вместо строки.

Лучшая практика:

use IPC::System::Simple qw(systemx);
systemx($command, @arguments);

require IPC::System::Simple;
use autodie qw(:all);
system([@allowed_exit_values], $command, @arguments);
31
ответ дан 1 December 2019 в 07:27
поделиться

Perl может соответствовать следующей заявленной функции:

добавляет одинарные кавычки вокруг строки и заключает в кавычки/зачеркивает все существующие одинарные кавычки

http://php.net/manual/en/function.escapeshellarg.php#function.escapeshellarg

вот так:

sub php_escapeshellarg { 
    my $str = @_ ? shift : $_;
    $str =~ s/((?:^|[^\\])(?:\\\\)*)'/$1'\\''/g;
    return "'$str'";
}
3
ответ дан 1 December 2019 в 07:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: