Pergunta

Eu tenho algum código de http://www.hyllander.org/node/23 isso usa $* ("Dollar Asterisk" ou "Dollar Star"), mas minha versão do Perl relata:

$* is no longer supported at migrate.pl line 284.

Você sabe quais foram os efeitos colaterais de fazer

$*=1

De alguma forma afetou funções como split ou tokenizadores ou expressões regulares?

Foi útil?

Solução

Aqui está parte da saída de perldoc perlvar:

$* Defina como um valor inteiro diferente de zero para fazer a correspondência de várias linhas em uma string, 0 (ou indefinida) para informar a Perl que pode assumir que as cadeias contêm uma única linha, com o objetivo de otimizar correspondências de padrões. As correspondências de padrões em strings que contêm várias linhas de novas linhas podem produzir resultados confusos quando $* é 0 ou indefinido. O padrão é indefinido. (Mnemonic: * corresponde a várias coisas.) Essa variável influencia a interpretação de apenas "^" e "$". Uma nova linha literal pode ser pesquisada mesmo quando "$* == 0".

O uso de $* é descontinuado no Modern Perl, suplantado pelos modificadores "/s" e "/m" na correspondência de padrões.

A atribuição de um valor não numérico a $* aciona um aviso (e faz $* Act se "$* == 0"), ao mesmo tempo que atribui um valor numérico a $* faz que um implícito "int" seja aplicado no valor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top