Como faço para definir o modo mancha em um script Perl com um '#!/Usr/bin/Env Perl'- shebang?

StackOverflow https://stackoverflow.com/questions/2528959

  •  22-09-2019
  •  | 
  •  

Pergunta

Como faço para definir o modo mancha em um script perl com um

#!/usr/bin/env perl

Shebang?

Foi útil?

Solução

Você pode passar na variável de ambiente Perl5Opt na linha Shebang:

#!/usr/bin/env PERL5OPT=-T perl

Isso parece tudo de trás para mim.

Outra opção é reexecionar o script no modo de mancha se você detectar que não estiver ligado:

#!/usr/bin/env perl

warn 'Taint mode is '.(${^TAINT} ? 'on' : 'off'); # For debugging

exec($^X,'-T',$0,@ARGV) unless ${^TAINT};

# do stuff under taint mode here

Obviamente, este é um grande desempenho de startups.

Outras dicas

Já que o modo de mancha só pode ser ativado através do -T bandeira e env Não aceitará bandeiras em uma linha de Shebang, sua melhor opção é executar o programa via perl -T script.pl em vez de executar o script diretamente.

Se você absolutamente precisar aplicar o modo de mancha no shebang, você pode fazer um taintperl Script em algum lugar do seu caminho (por exemplo, usr/local/bin) com o seguinte conteúdo:

#!/bin/sh
/usr/bin/env perl -T

Então em seu script Perl, tenha

#!/usr/bin/env taintperl
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top