Newsgroup: it.comp.lang.perl
Titolo: Script, piccolo (??) aiuto

Ciao a tutti!
Vi sto scrivendo da agent in emulazione sotto linux (ma che me ne
frega, direte....vabbe', era solo per dirvi che sono incasinato a
copiarvi lo script incriminato perchè il taglia/incolla non funzia;-)
Vabbe', copio a mano.....arghhh
Lo script mi serve per aprire i files dei segnalibri di explorer
(quelli .url), prendere una parte del file, e copiarla in un file
(bookmark.html, quello di netscape), con il giusto formato, in modo
che poi riesca a usarlo con netscape.
Non mi dire che ci sono già utility che lo fanno, perchè non le
voglio, devo imparare il perl e ho scelto di cominciare con qualcosa
che mi servisse, e la prima cosa che mi è venuta in mente è proprio
uno script per passare i preferiti di IE, a netscape (per linux, ma
questo non importa).
Ebbene passiamo alllo script:
#!/usr/bin/perl
@files = 'ls -1 *.url';          # ho messo i " ' " perchè non vengono
quelli alla rovescia (che comunque uso nello script, e funzia)
open BOOKMARK, ">> bookmark.html";
open filea, @files[0];
seek (filea, URL, 0);
@rigaa = <filea>;
print BOOKMARK "@files[0]\n";
print BOOKMARK "@rigaa\n";
open fileb, @files[1];
seek (fileb, URL, 0);
@rigab = <fileb>;
print BOOKMARK "@files[1]\n";
print BOOKMARK "@rigab\n";
Ecco, così facendo ottengo l'assegnazione alla array @files
dell'output del comando "ls -1 *.url", poi apro il primo elemento
della array, e .....
POSIZIONO IN CURSORE....(proprio qui il primo casino)
tramite seek(filea, URL, 0)  dovrei ottenere il posizionamento del
cursore appena dopo la scritta "URL" nel file .url che ho aperto,
giusto?....invece  poi quando vado a scrivere  con print BOOKMARK
"@rigaa\n" mi stampa nel file bookmark.html, tutto il contenuto del
file .url....però caspita, io avevo posizionato il cursore dopo la
scritta "URL" nel file .url!!  DOVE HO SBAGLIATO?
Per chiarire meglio, i files .url sono fatti così:
[InternetShortcut]
URL=
http://www.mclink.it
AHDGGHDKDKDJJDSKWEJ
quindi 3 righe, io con seek posiziono il cursore dopo "URL" quindi
dovrebbe stamparmi nel file bookmark.html SOLO la riga
=
http://www.mclink.it
 (tralasciandoo il segno = che magari fa casino)
quindi vorrei spiegazione su dove è l'errore...
chiaramente io devo ripetere :
open filea, @files[0];
seek (filea, URL, 0);
@rigaa = <filea>;
print BOOKMARK "@filea[0]\n";
print BOOKMARK "@rigaa\n";
per ogni file .url che c'è nella directory, cambiando i nomi delle
array e i riferimenti agli elementi in esse contenute, c'è un modo per
non ripetere il codice qui sopra per 30 volte (il numero max di files
in una dir)?...se si, come?
Per il momento basta, se no va a finire che mi scartano il post perchè
pensano che abbia un file in attach, da quanto lungo è....;))
La prossima volta vi chiedo come estendere la procedura anche alle
sotto-directory.
Ciao
Teo
PS:E' il primo script, abbiate pazienza, ho cominciato a leggere
qualcosa ieri sera!;)

 qualcosa ieri sera!;)
Male. Molto male.
Prima ti leggi TUTTA la documentazione di Perl, poi cominci a programmare.
Maurizio
-- 
Maurizio M. Munafo' / 
mmmu...@netscape.net
"Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)


Ti consiglio di iniziare con qualcosa piu' semplice.
--
Fernando

 Ti consiglio di iniziare con qualcosa piu' semplice.
Identico consiglio.


Identico consiglio.
;-)
Mhmmm, ma non trovo cose utili da fare....
Grazie cmq ad entrambi
Ciao!
Teo