Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    come potrei passargli l'hash?

    codice:
      open(LEGGI,"<lista.txt") || die "Error: (read_lista_txt) lista.txt\n$!";
       flock(LEGGI,1);
        while(<LEGGI>)
        {
         ($news_id,$news_title,$news_status) = split(/\|/, $_);
         $lista_txt{$news_id} = [ $news_title,$news_status ];
        }
       flock(LEGGI,8);
      close(LEGGI);
    
    delete $lista_txt{$id}
    
      open(SCRIVI,"+< lista.txt") || die "Error: (write_lista_txt) lista.txt\n$!";
       flock(SCRIVI,2);
        seek(SCRIVI,0,0); truncate(SCRIVI,0);
         foreach (sort (keys %lista_txt) )
         {
          $riga = $_ . '|' . $lista_txt{$_}[0] . '|' . $lista_txt{$_}[1] . '|';
          print SCRIVI "$riga\n";
         }
       flock(SCRIVI,8);
      close(SCRIVI);
    se volessi mettere la parte dopo delete in una sub come potrei passargli l'hash? direttamente o in riferimento? (potreste farmi un esempio pratico?

    Grazie...

  2. #2
    Meglio per riferimento:

    delete $lista_txt{$id}

    &funzione(\%lista_txt);

    sub funzione {
    my $lista_txt = shift;
    print $lista_txt->{'una chiave'};

    }
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  3. #3
    quindi per fare il foreach dovrei fare cosi':

    codice:
    foreach (sort (keys $%lista_txt) )
         {
          $riga = $_ . '|' . $lista_txt{$_}[0] . '|' . $lista_txt{$_}[1] . '|';
          print SCRIVI "$riga\n";
         }
    vero?

  4. #4
    Riposto il codice cosi' gli date una controllatina:

    codice:
    %lista_txt = &read_lista_txt();
    delete $lista_txt{$id};
    &write_lista_txt(\%lista_txt);
    
    sub read_lista_txt {
    
      my ($news_id,$news_title,$news_status,$riga);
      my %lista_txt;
    
      open(LEGGI,"<lista.txt") || die "Error: (read_lista_txt) lista.txt\n$!";
       flock(LEGGI,1);
        while(<LEGGI>)
        {
         ($news_id,$news_title,$news_status) = split(/\|/, $_);
         $lista_txt{$news_id} = [ $news_title,$news_status ];
        }
       flock(LEGGI,8);
      close(LEGGI);
      
      return %lista_txt;
    
    }
    
    sub write_lista_txt {
    
      my $lista_txt = shift; 
      my $riga;
    
      open(SCRIVI,"+< lista.txt") || die "Error: (write_lista_txt) lista.txt\n$!";
       flock(SCRIVI,2);
        seek(SCRIVI,0,0); truncate(SCRIVI,0);
         foreach (sort (keys $%lista_txt) )
         {
          $riga = $_ . '|' . $lista_txt{$_}[0] . '|' . $lista_txt{$_}[1] . '|';
          print SCRIVI "$riga\n";
         }
       flock(SCRIVI,8);
      close(SCRIVI);
    
    }

  5. #5
    mi pare che sia %{$lista_txt}
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

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.