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 2024

Vídeo: Java version history 2024
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

Filmando fotos em situações especiais com Canon Rebel Série T3 Câmeras - manequins

Filmando fotos em situações especiais com Canon Rebel Série T3 Câmeras - manequins

ÀS vezes haverá não há problema em tirar o seu Canon Rebel T3 ou T3i fora e tirar fotos com configurações automáticas. A maior parte do tempo, você pode fazer com alguns ajustes simples. Alguns assuntos e situações de filmagem apresentam alguns desafios adicionais que exigem combinações de configurações mais complicadas. ...

Escolha dos editores

Obtendo o WordPress. org Software - dummies

Obtendo o WordPress. org Software - dummies

Depois de classificar seu host e domínio do site, você deve baixar e extrair os arquivos do WordPress pela WordPress. org e colocá-los no seu computador. Escolha um lugar que você lembrará, como um diretório de Documentos ou Download. Siga estas etapas: aponte seu navegador para o WordPress. org. A página principal do WordPress aparece. Clique em ...

Google AdSense para Bloggers de Mom - dummies

Google AdSense para Bloggers de Mom - dummies

Google O AdSense não é uma rede de anúncios orientada para a mãe, nem é A melhor opção de publicidade para a maioria dos blogs da mãe. Há certamente exceções a isso, especialmente se você blogar sobre produtos ou marcas. Todos os blogueiros que exibem publicidade devem ter um provedor de anúncios de backup - e o AdSense é uma ótima solução para essa necessidade. AdSense aprova ...

Relatório de conteúdo principal do google Analytics - dummies

Relatório de conteúdo principal do google Analytics - dummies

O relatório Top Content é um dos relatórios mais importantes no Google Analytics. Este relatório mostra as postagens mais populares no blog da sua mãe. Seu conteúdo popular dá uma visão do porquê seus leitores chegam até você. Os tópicos dessas postagens indicam o que as pessoas gostam, mesmo quando não comentam. Para visualizar ...

Escolha dos editores

Como fazer uma imagem disparar um link - as manequins

Como fazer uma imagem disparar um link - as manequins

Usam imagens para navegação . Eles são mais bonitos que os links de texto simples, e você pode adicionar a forma e a função na sua página com um elemento. Para criar uma imagem que desencadeia um link, você substitui um elemento no lugar do texto ao qual você ancoraria seu link. Esta marcação liga o texto: ...

Como abrir links em novos Windows ou Tabs com HTML5 - dummies

Como abrir links em novos Windows ou Tabs com HTML5 - dummies

O A web funciona porque você pode vincular páginas em seu site para páginas nos sites de outras pessoas usando um elemento de âncora simples. Quando você liga para o site de outra pessoa, você envia usuários para longe de seu próprio site. Para manter os usuários no seu site, HTML pode abrir a página vinculada em uma nova janela ...

Como criar tabelas em HTML5 - dummies

Como criar tabelas em HTML5 - dummies

O recipiente de marcação primária para tabelas em HTML é a tabela elemento. Ou seja, você usa a tag de abertura para denotar o início de uma tabela e você adiciona a tag de fechamento para encerrá-la. Além disso, os blocos de construção básicos para dados de tabela em HTML são a linha da tabela ( ) e os dados da tabela ...