[Roma.pm] Aiuto su Strutture FrontEnd ncurses

Flavio Poletti flavio at polettix.it
Fri May 16 10:51:08 PDT 2008


Ciao Stefano,

   grazie per averci scritto.

Non credo di aver capito esattamente dov'è il tuo problema - o magari
faccio finta di non aver capito ;-)

Se non ho capito male, vuoi realizzare un pezzo di codice che parta dal
contenuto di una directory e ti generi una hash che abbia una struttura
ben determinata, in particolare una struttura che sia "gradita" alla
libreria che stai utilizzando.

Per quanto riguarda la prima parte, invece di fare "ls" puoi utilizzare
alcune funzioni presenti in Perl (opendir/readdir/closedir) oppure altre
in alcuni moduli (es. File::Find o File::Find::Rule). Ad esempio, con le
funzioni in Perl:

   # ATTENZIONE: SCRITTO DI GETTO E NON TESTATO!
   use File::Spec::Functions qw( catfile );
   #...
   opendir my $dh, $nomedirectory
      or die "opendir('$nomedirectory'): $!";
   while (defined(my $file = readdir $dh)) {
      my $full_path = catfile($nomedirectory, $file);
      # qui si usa $full_path per i propri scopi, ad esempio...
      next if -d $full_path; # ignora le directory, come "." e ".."
      next unless -r $full_path && -x $full_path; # leggibili ed eseguibili
      print "trovato script: '$full_path'\n";
   }
   closedir $dh;

Per la seconda parte, temo dovrai essere un tantino più esplicito circa la
struttura della hash a cui miri. Non sarebbe male avere un esempio tipo
"questa la lista degli script, questa la hash da generare"... Sarebbe
anche interessante vedere cosa hai tentato a riguardo (senza vedere tutto
il resto, altrimenti uno affoga nel codice e va a finire che non se lo
legge ;)

Ciao,

   Flavio.


> Salve a Tutti , sto cercando di risolvere un problema per un software che
> sfrutta i package Curses::Widget e Curses::Widget::Menu
> tale software è praticamente un frontend fatto da un menu che permette la
> scelta di alcune operazioni di aggiornamento dei miei portali su vps
> dalla mia macchina di sviluppo. tale frontend non deve fare altro che
> lanciare degli script shell che si occupano di effetture gli
> aggiornamenti.
> Il problema che mi sto ponendo è che io voglio generare tali menu
> dinamicamente grazie ad una funzione che esegue un semplice "ls" su una
> dir
> purtruppo questo non riesco proprio a farlo è cioè non riesco a passare al
> costruttore dell pacchetto Curses::Widget::Menu un' hash nella maniera in
> cui
> lui si attende di riceverlo.
[snip]



More information about the Roma mailing list