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

Como executar o teste beta para uma aplicação iOS - manequins

Como executar o teste beta para uma aplicação iOS - manequins

Depois de executar o seu aplicativo em alguns dispositivos e está confiante de que está funcionando da maneira que é suposto, considere levá-lo às mãos de alguns testadores beta. O teste beta permite que você receba comentários de usuários reais e repare todos os erros antes que o público em geral os veja. Você pode se surpreender ...

Como publicar no Amazon Appstore para Android - dummies

Como publicar no Amazon Appstore para Android - dummies

Publicação para o Amazon Appstore para Android é semelhante à publicação na Google Play Store: você cria uma conta e, em seguida, talvez seja necessário pagar uma taxa de desenvolvedor. Ao contrário do Google Play Store, os aplicativos devem ser revistos no Amazon Appstore para Android, portanto, planeje alguns dias entre o dia em que você enviar ...

Como preparar ativos gráficos em seu aplicativo Android para publicar na Play Store - Dummies

Como preparar ativos gráficos em seu aplicativo Android para publicar na Play Store - Dummies

Quando você publica um aplicativo Android na Play Store, você interage com o Console do desenvolvedor do Google Play. O passo essencial nesta interação é o passo em que você carrega o arquivo APK do seu aplicativo. É o passo essencial, mas não é o único passo. Você também deve usar a Consola do desenvolvedor da Play Store ...

Escolha dos editores

As Leis de Minecraft Redstone - dummies

As Leis de Minecraft Redstone - dummies

Cada mecanismo Redstone da Minecraft possui um conjunto diferente de propriedades que determinam como ele atua. Você deve entender as relações entre suas propriedades. Depois de trabalhar com Redstone por um tempo, a forma e a função das suas ferramentas podem se tornar bastante intuitivas. Até então, você pode usar essas informações para descobrir quais opções são ...

Minecraft Pocket Edition Guia de Sobrevivência - dummies

Minecraft Pocket Edition Guia de Sobrevivência - dummies

Ao contrário da versão bastante complicada para PC do Minecraft, Pocket Edition (PE) de A Minecraft tem uma série de etapas mais direta para alcançar seu ponto final, o Nether Spire. Para sobreviver ao PE Minecraft, um jogador precisa seguir a série de passos descritos abaixo. Punch madeira e construir um abrigo. Todo o Minecraft ...

Minecraft Para Dummies Cheat Sheet - dummies

Minecraft Para Dummies Cheat Sheet - dummies

Minecraft requer um jogador para reunir recursos para sobreviver, construir, criar, e avance no jogo. Devido aos diferentes ambientes encontrados no Minecraft, um jogador precisa usar diferentes estratégias para reunir recursos eficientemente nas três principais áreas do jogo - Overland, the Mines e the Nether. Uma vez que estes ...

Escolha dos editores

Como criar mensagens de e-mail de impressão em série no Word 2013 - dummies

Como criar mensagens de e-mail de impressão em série no Word 2013 - dummies

Palavra 2013 permite que você expire mensagens de e-mail personalizadas usando a opção E-Mail para mala direta. Esta opção funciona apenas quando você configura o programa Microsoft Outlook no seu computador. Depois disso, você inicia o documento principal para sua fusão de e-mail obedecendo a estas etapas:

Como criar múltiplas colunas em um documento do Word 2007 - dummies

Como criar múltiplas colunas em um documento do Word 2007 - dummies

Para converter seu padrão single- (ou não-) coluna do documento do Word 2007 em um com várias colunas, basta escolher o formato da coluna que deseja no menu Colunas. Instantaneamente, seu documento é transformado em uma maravilha multicolora!

Como criar tabelas rápidas nas tabelas do Word 2008 para Mac - dummies

Como criar tabelas rápidas nas tabelas do Word 2008 para Mac - dummies

Ajudam você a organizar idéias ou dados que seriam aborrecedores e difíceis de compreender em forma de parágrafo regular. Com o Word 2008 para Mac, você pode facilmente criar tabelas - às vezes chamadas de grades - em qualquer lugar em seus documentos. A maneira mais fácil de criar tabelas é com um dos melhores recursos novos ...