sub shell_quote1 { local($_) = @_; s/([^\w\n])/\\$1/g; s/\n/\"\n\"/g; length or $_ = q/""/; $_ } sub shell_quote { local($_) = @_; s/([\\\$\"\`])/\\$1/g; qq/"$_"/ } sub shell_quote2 { local($_) = @_; s/'/'\\''/g; qq/'$_'/ } sub bash_quote3 { local($_) = @_; s/(\W)/sprintf("\\x%02x", ord($1))/ge; qq/\$'$_'/ }