Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [PERL] Comando wc

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    84

    [PERL] Comando wc

    Ciao a tutti,
    ho svolto il seguente esercizio
    Si vuole realizzare uno script perl che imiti il comando wc. In particolare, lo script deve implementare un
    comando wc [opzioni] file in grado di stampare sullo standard output un conteggio delle linee o
    parole presenti su un file di testo specificato come parametro. In particolare, lo script wc accetta come
    opzioni le stringhe:
    (1)–l
    (2)–w
    (3)–w=”value”
    Se presente l’opzione –l lo script restituisce in output in numero di linee presenti nel file. Se presente
    l’opzione –w lo script restituisce in output in numero di parole presenti nel file. Inoltre, l’opzione –w
    può essere associata ad un valore stringa (–w=”value”). In tal caso, il comando restituisce il numero di
    parole presenti nel file corrispondenti al valore (value) indicato. Se nessuna delle opzioni è presente, lo
    script si comporta come nel caso (2).
    Ho fatto una cosa del genere:
    codice:
    #!/usr/bin/perl
    
    open (FILE, "file1");
    @contenuto=<FILE>;
    
    print "Inserire il nome del comando ";
    #$input="wc -l";
    $input=<STDIN>; 
    chomp $input;
    print "input = $input\n";
    
    @value=split(/-w=˝*˝/,$input);
    print "value = @value\n";
    
    if($input eq "wc -l")
    {
        print " comando wc -l " ;
        
    
    foreach $riga (@contenuto)
        { 
            print "sono qui nel comando wc -l : ";
            $cont++;
            
        }
        
    }
    if($input eq "wc -w")
    {
        print " sono nel wc -w " ;
        
        foreach $riga (@contenuto)
        { 
            print "sono qui nel wc -w :";
            @contenuto2=split(' ', $riga); 
        }
        for($i=0; $i<@contenuto2; $i++)
        {
            $cont++;
        }
    }
    if($input eq "wc -w=$value")
    {
        print " sono nel wc -w= value " ;
        
        
        
        foreach $riga (@contenuto)
        { 
            print "sono qui nel wc -w = value :";
            @contenuto2=split(' ', $riga);
        }
        for($i=0; $i<@contenuto2; $i++)
        {
            if($value eq $contenuto2[$i])
            {
            $cont++;
            }
        }
            
        
    }
    if($input eq "wc")
    {
        print " sono nel wc " ;
        
        foreach $riga (@contenuto)
        { 
            print "sono qui nel wc :";
            @contenuto2=split(' ', $riga); 
        }
        for($i=0; $i<@contenuto2; $i++)
        {
            $cont++;
        }
    }
    else
    {
        print " sbagliato";
    }
    print "cont = $cont\n";
    close(FILE);
    Ho difficoltà per quanto riguarda l'opzione –w=”value” ,dovrei prendere il contenuto della variabile value quindi solo da uguale in poi...
    Così non me lo da:

    @value=split('=',$input);

    Qualcuno sa suggerirmi qualcosa?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    84
    Niente da fare?????

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.