Newsgroup: it.comp.lang.perl
Titolo: opendir o ls

come si fa in Perl a leggere il contenuto di una directory con i file 
ordinati in vase alla data di ultima modifica?
caso mai come si potrebbe fare anche con il comando unix "ls" ?
Grazie...

 Grazie...
Prego...

 wrote:

purtroppo non sto su linux...non ho una shell di comandi...e tutto 
quello che ho trovato su 
perl.com
 non mi aiuta molto...
cmq sarrebbe il massimo se opendir mi aprisse la dir gia ordinata senza 
che io debba usare un sort sul risultato di una stat...

che io debba usare un sort sul risultato di una stat...
No, readdir non ha alcuna opzione di ordinamento. Puoi mettere tutto in un
array, e usare sort per ordinarlo. Oppure puoi leggere (con system o
aprendo una pipe, o con gli apici inversi) il risultato del comando "ls"
(se lo nomini tu, vorrà dire che ce l'hai). Oppure puoi usare uno dei
moduli per i file, tipo File::Find::Rule e altri.
Ciao.

 wrote:
  seva> Larry wrote:
    Larry> come si fa in Perl a leggere il contenuto di una directory
    Larry> con i file ordinati in vase alla data di ultima modifica?
  seva> perldoc -f opendir
  seva> erldoc -f readdir
  seva> perldoc -f stat
   Larry> caso mai come si potrebbe fare anche con il comando unix "ls" ?
  seva> man ls
    Larry> Grazie...
  seva> Prego...
Larry> purtroppo non sto su linux...non ho una shell di comandi...e
Larry> tutto quello che ho trovato su 
perl.com
 non mi aiuta molto...
forse puoi usare la distribuzione knoppix linux live su CD
http://www.knoppix.org/
Larry> cmq sarrebbe il massimo se opendir mi aprisse la dir gia
Larry> ordinata senza che io debba usare un sort sul risultato di una
Larry> stat...
il massimo di che?
Ci sono un po' di ragioni e si chiamano POSIX, BSD 4.3 e SVID 3:
opendir e` una funzione che ha come parametro solo il nome della
directory da aprire e restituisce un DIR handle, il perl le rispetta
per ragioni di efficienza e di standard.
C'e` una certa similitudine tra directory e file, readdir legge la
sequenza di entry all'interno della directory cosi` come sono. Il
processo di ordinamento deve essere esterno proprio per la
semplicita` data alla scomposizione in opendir / readdir.
In ambiente di multiutenza non e` inoltre una buona scelta creare un
dirhandle attivo in grado di fornire alle seguenti readdir i dati
ordinati come vuole il dirhandle. (ricordati che dal punto di vista
genrico puo` esserci piu` di un dirhandle di piu` processi per una
stessa directory).
A quanto ho capito poi, nella tua soluzione pensata... non e` bello
mettere una stat dentro un blocco di sort perche` verrebbe chiamata
inutilmente piu` volte (minimo n*log(n)). Dovresti creare prima una lista
con le informazioni che ti interessano delle entry della/e directory,
poi lasciare stare l'input/output ed elaborare le informazioni in memoria,
se le vuoi ordinare.
Quindi parlavi di un massimo relativo.
Saluti,
MARco
-- 
xref: 
http://mar.i.am/~u16640.60840/it.comp.lang.perl/sarebbeilmassimo,it
x(t),y(t) = th(3t-34.5)*e^[-(3t-34.5)^2]/2-4.3+e^(-1.8/t^2)/(.8*atg(t-
3)+2)(t-1.8)-.3th(5t-42.5),(1.4e^[-(3t-34.5)^2]+1-sgn[|t-8.5|-.5]*1.5*
|sin(pi*t)|^[2e^(-(t-11.5)^2)+.5+e^(-(.6t-3.3)^2)])/(.5+t)+1  ; 0<t<14

 ha scritto nel messaggio
news:dontmesswithme-2F8...@twister2.tin.it...


 ha scritto nel messaggio
news:dontmesswithme-F42...@twister1.tin.it...


 perň, se non hai linux, non so che ci fai
non c'č l'ho in locale...ma in rete si...
Grazie mille!!!

 .topic (as esempio: 10000.topic)
ls -lt *.topic
-- 
§          ZeD           §
§     Up da 1:15 ore     §
§       24/07/2004       §
§ S. Cristina da Bolsena §

 ha scritto nel messaggio
news:dontmesswithme-D3C...@twister2.tin.it...


 ha scritto nel messaggio
news:3jAMc.13906$OH4.2...@twister1.libero.it...


 print `ls -lt *.topic>nomefile`;
oppure:


> print `ls -lt|egrep .topic$>nomefile`;
Se funziona, evidentemente la prima. Meno roba fai girare, meglio č.
Sono perň un po' arruginito e non ti so garantire che funzioni (non
vedo perché no, ma appunto in questo potrebbe consistere la ruggine).
Ciao.