Lar Finanças Pessoais Tuning Into Ten Short, úteis Perl Programs - dummies

Tuning Into Ten Short, úteis Perl Programs - dummies

Índice:

Vídeo: Java version history 2025

Vídeo: Java version history 2025
Anonim

Algumas pessoas acreditam que os programas curtos não são bons para muito, mas isso não acontece com o Perl. Apenas algumas linhas de código Perl podem percorrer um longo caminho. Este artigo lista alguns pequenos e pequenos programas Perl.

Coletando linhas exclusivas

Se seu arquivo de texto tiver muitas linhas duplicadas e você quiser apenas ver as linhas exclusivas, você pode coletá-las em uma matriz (neste caso, é chamado @Unique) com o seguinte programa:

abrir (IN, "somefile. Txt"); @ Unique = ();

enquanto () {a menos que ($ i {$ _} ++) {push (@Unique, $ _)}}

O truque aqui é que $ i {$ _} ++ retorna 0 na primeira vez você cria um par de valores-chave com $ _ como a chave, e um valor diferente de zero depois disso.

Descartar várias linhas em branco

Alguns arquivos de texto têm múltiplas linhas em branco consecutivas, o que dificulta a leitura, especialmente em telas pequenas. O programa a seguir imprime um arquivo de texto, compactando todas as instâncias de duas ou mais linhas em branco em uma única linha em branco.

Nota: Uma linha em branco pode ter caracteres de espaço em branco, como espaços e guias, mas sem caracteres exibíveis.

abrir (IN, "somefile. Txt"); $ PrevBlank = 0;

enquanto () {

se (/ S / ou! $ PrevBlank) {print $ _}

$ PrevBlank = / ^ s * $ /;

}

A instrução if no exemplo anterior é verdadeira se houver caracteres não negativos na linha ou se a linha anterior não estava em branco. A atribuição $ PrevBlank diz se a linha atual está em branco, o que significa que ela tem zero ou mais caracteres de espaço em branco e nada mais.

Imprimir linhas de um arquivo em ordem ordenada

É fácil esquecer o quão útil é a função de classificação do Perl. O seguinte programa lê o arquivo inteiro em uma matriz, classifica a matriz e imprime o resultado. Curto e doce, e muito eficiente para inicializar:

abrir (IN, "somefile. Txt");

impressão tipo ();

Imprimir um intervalo de linhas de um arquivo

Alguma vez você já quis ler apenas algumas linhas de um arquivo e não o todo? O programa a seguir imprime apenas uma variedade de linhas. Você executa o programa com dois argumentos: o intervalo que deseja e o nome do arquivo. Por exemplo, se você nomear seu programa "showline" e deseja ver as linhas 10 a 20 do somefile. arquivo txt, você usa esta linha de comando:

showline 10-20 somefile. txt

O programa a seguir imprime um intervalo de linhas:

abrir (IN, $ ARGV [1]) ou morrer "Não foi possível ler $ File. n ";

($ Start, $ Stop) = split (/ - /, $ ARGV [0]);

para ($ i = 1; $ i <= $ stop; $ i + = 1)

{$ Line =; se ($ i> = $ Start) {print $ Line}}

Listando apenas os arquivos em um diretório

Por vezes, você pode querer ignorar os subdiretórios em um diretório e apenas se concentrar nos arquivos.Você pode usar o seguinte teste de arquivo -f para listar todos os arquivos em um diretório:

foreach $ f () {if (-f $ f) {print "$ fn"}}

Listando um diretório por tamanho

Para classificar, uma listagem de diretórios por qualquer coisa que não seja seus nomes de arquivos, seu programa deve manter uma lista de registros consistindo nos nomes e outros itens na listagem. Hashes são ótimos para usar para esse tipo de lista que possui registros com uma chave (o nome do arquivo) e um valor (a outra informação do diretório). O programa a seguir cria um hash que lista o tamanho de cada arquivo no diretório e, em seguida, classifica os itens para saída. (Você pode modificar facilmente este programa para classificar por data em vez de por tamanho.)

foreach $ f () {$ i {$ f} = -s $ f};

foreach $ k (classifique {$ i {$ b} <= & gt $ i {$ a}} chaves% i)

{printf "% 8d% sn", $ i {$ k}, $ k }

Classificando diretórios por extensão

A classificação por uma parte de um nome de arquivo é um processo ligeiramente mais difícil do que a classificação pelo tamanho do arquivo ou pela data em que o arquivo foi modificado. O segundo programa quebra o nome do arquivo em dois e tipos pela segunda parte. Se você estiver executando Perl em um sistema UNIX ou Macintosh, este programa funciona previsivelmente somente se os nomes dos arquivos não tiverem um período ou um período:

foreach $ FullName () {

($ Name, $ Ext) = split (/. /, $ FullName, 2);

push (@Temp, "$ Extt $ FullName");

}

foreach $ Val (classificar (@Temp)) {

($ Ext, $ FullName) = dividir (/ t /, $ Val);

imprimir "$ FullNamen";

}

Criando uma calculadora simples

Já precisou de uma calculadora simples de usar para eliminar algumas matemáticas rápidas e sujas? O programa a seguir usa a função eval de Perl para imprimir as respostas para qualquer equação que você inserir. Para encerrar o programa, insira uma linha em branco. Aqui está esse programa para criar sua própria calculadora:

while () {

$ i = $ _; chomp ($ i); a menos que ($ i) {último}

$ o = eval ($ i); imprimir "Answer = $ on";

}

Quando você executa o programa, você pode inserir algo como o seguinte:

((2 ** 8) + (3 ** 8))

e você obtém esse resultado: > Answer = 6817

Randomizing a list

Em Perl, gerar números aleatórios é fácil, mas aleatorizar a ordem de uma matriz não é tão simples. No entanto, você pode usar a função de emenda para puxar um elemento aleatório de uma matriz e, em seguida, coloque o elemento em outra matriz. O seguinte programa aleatoriza a lista @MyList:

my @TempList = ();

enquanto (@MyList)

{push (@TempList, splice (@MyList, rand (@MyList), 1))}

@MyList = @TempList;

O truque aqui é que rand (@MyList) escolhe um número entre 0 eo número de elementos em @MyList, e o splice altera esse número aleatório para um número inteiro.

Gerando senhas mnemônicas aleatórias

Tentar convencer os usuários de computadores a criar senhas que não são facilmente adivinhadas é um dos trabalhos mais desafiadores para um administrador de sistema. As pessoas sempre parecem insistir em usar suas datas de nascimento ou nomes de animais de estimação para senhas - violar a segurança e se tornar uma peça de criança.

O programa a seguir gera senhas aleatórias. Em vez de uma mistura de cartas difíceis de lembrar, as senhas são um pouco mnemônicas porque aparecem em pares de consoantes e vogais que são pronunciáveis.Ao juntar umas poucas sílabas, você pode gerar frases sem sentido fáceis de lembrar.

Cada sílaba da senha pode representar qualquer um dos 100 números; portanto, uma única senha de quatro sílabas, como

votahubo, é uma das 100 milhas (100 para a quarta potência) possíveis senhas que o programa gera. Ter um administrador do sistema atribuir essas senhas fornece mais segurança do que deixar os usuários escolher suas próprias senhas facilmente adivinhadas: imprimir "Digite um número de semente:"; $ s =;

srand ($ s ^ time);

@ c = split (/ * /, "bcdfghjklmnprstvwxyz");

@ v = split (/ * /, "aeiou");

para ($ i = 1; $ i <= 4; $ i + = 1)

{print $ c [int (rand (20))], $ v [int (rand (5))] }

As primeiras duas linhas deste programa inicializam a semente para os números aleatórios e as próximas duas linhas criam listas contendo as 20 consoantes (menos

q ) e 5 vogais do alfabeto. O loop for simplesmente imprime as quatro sílabas.

Tuning Into Ten Short, úteis Perl Programs - dummies

Escolha dos editores

Noções básicas do arquivo de dados Flashback da Oracle 12c - dummies

Noções básicas do arquivo de dados Flashback da Oracle 12c - dummies

O Flashback Data Archive do oracle 12c é um mecanismo de banco de dados que permite que você para armazenar periodicamente ou indefinidamente todas as versões de linha em uma tabela ao longo da sua vida útil. Você pode então escolher uma hora para ver os dados como existia em um ponto específico. Esteja ciente de que o Flashback Data Archive é um recurso licenciado. ...

Noções básicas de clusters de aplicativos reais do Oracle 12c - manequins

Noções básicas de clusters de aplicativos reais do Oracle 12c - manequins

Se você visitou os sites da Oracle nos últimos 12 anos , você viu o byline de marketing: "Inquebrável. "Essa linha de tag refere-se ao recurso Real Application Clusters (RAC). Claro, muitos elementos estão envolvidos, mas o RAC tem o destaque. O RAC é a solução de clustering de banco de dados Oracle. Em certo sentido, funciona na teoria de que ...

Noções básicas de Redo Log Files no Oracle 12c - dummies

Noções básicas de Redo Log Files no Oracle 12c - dummies

Redo os arquivos de log armazenam as informações do buffer de log no banco de dados Oracle 12c. Eles são escritos pelo Log Writer (LGWR). Mais uma vez, você não pode ler esses arquivos binários sem a ajuda do software de banco de dados. Normalmente, os arquivos de reto de log são nomeados com a extensão. LOG ou. RDO. Pode ser qualquer coisa que você queira, ...

Escolha dos editores

São orgasmos ok durante a gravidez? - Dummies

São orgasmos ok durante a gravidez? - Dummies

As mulheres grávidas não só têm permissão para fazer sexo, mas muitas vezes o desejam. Mas é bom aproveitar a relação sexual com o ponto do orgasmo? Afinal, os orgasmos são nada mais do que contrações - e as pessoas sugeriram que isso poderia desencadear mão-de-obra. Isso é apenas um mito. De fato, grávida ...

Alimentando a Multidão em uma Reunião Familiar - manequins

Alimentando a Multidão em uma Reunião Familiar - manequins

Cozinhando uma refeição para um grande grupo (reunião familiar ou de outra forma ) requer planejamento e resistência. Aqui está um guia útil para quantidades de alimentos e segurança alimentar, e conselhos sobre a organização de uma festa de potluck. Planejando para potlucks A forma mais comum de comestibles de grupo é uma festa de potluck - qual é a maneira mais barata e fácil de ...

Anatomia do Penis humano - dummies

Anatomia do Penis humano - dummies

Sabendo como as funções de um pénis podem fornecer uma visão útil do sexo e do corpo humano - se você quer entender o pénis e a anatomia masculina melhor ou aprender sobre isso pela primeira vez. Basicamente, um pênis é composto de três estruturas, que são feitas de um material esponjoso que pode preencher com sangue: ...

Escolha dos editores

Como lidar com outliers causados ​​por Forças externas - manequins

Como lidar com outliers causados ​​por Forças externas - manequins

Certifique-se de verificar atentamente os outliers antes eles influenciam sua análise preditiva. Os outliers podem distorcer a análise de dados e dados. Por exemplo, qualquer análise estatística feita com dados que deixa outliers no lugar acaba por desviar os meios e variâncias. Os outliers não controlados ou mal interpretados podem levar a conclusões falsas. Diga os seus dados que ...

Como criar um modelo de análise preditiva com regressão R - manequins

Como criar um modelo de análise preditiva com regressão R - manequins

Você deseja criar um preditivo modelo de análise que você pode avaliar usando resultados conhecidos. Para fazer isso, vamos dividir nosso conjunto de dados em dois conjuntos: um para treinar o modelo e outro para testar o modelo. Uma divisão 70/30 entre treinamento e testes de conjuntos de dados será suficiente. As próximas duas linhas de código ...

Como definir objetivos de negócios para um modelo de análise preditiva - dummies

Como definir objetivos de negócios para um modelo de análise preditiva - dummies

Um modelo de análise preditiva visa resolvendo um problema comercial ou realizando um resultado comercial desejado. Esses objetivos comerciais se tornam os objetivos do modelo. Conhecer aqueles garante o valor comercial do modelo que você constrói - o que não deve ser confundido com a precisão do modelo. Hipotéticamente, você pode construir um modelo preciso para ...