[Linuxtrent] Re: W Perl ;)

  • From: Luca Manganelli <manganelli@xxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Fri, 01 Oct 2004 10:21:06 +0200

Daniele Nicolodi wrote:

Interpreto l'omissione di repliche ai punti 1 e 2 come amissione che su
quei puinti ho ragione ?


Giusto ;)

3. Implementazione del paradigma ad oggetti a dir poco penosa.


Vedremo con Perl 6.


Se è per quello dicono che tra poco ci sarà un linguaggio che si scrive
da solo... Limitare la discussione a quello che esiste mi sembra un
ottimo inizio per avere commenti il più possibile oggettivi.


Beh anche PHP non aveva un'ottima implementazione ad oggetti, fino a PHP 5.

4. Mancanza delle eccezzioni che unita alla mancanza di tipi rende un
casino ritornare qualcosa di consistente da una funzione.





Basta usare eval.



Eval può in qualche modo sopperire ma non permette di trappare le
eccezzioni condizionatamente. O tutto o niente non è sempre quello che
si desidera.


Comunque abbiamo qualcosa anche con Perl ;)

In effetti, bisognerebbe usare ActiveState Komodo (a pagamento) che include un ottimo Regular Expression Editor.


Anche emacs include un regular expression editor ma non è assolutamente
la soluzione del problema per non avere un interprete interattivo.


Basta scrivere perl, scrivere il codice e premere CTRL+D ;)

No. È un problema del perl che costringe ad utilizzare sintassi
astrusissime per fare anche delle cose banali. Per esempio mi viene in
mente il metodo per sapere la lunghezza di un array:

$len = scalar(@array);


$len = $#array;
come vedi e' un problema di chi scrive codice. Conosci la spaghetti programming?


ma era diffcile introdurre una funzione len() ? E poi tutto sto casino
dei reference e no reference che per farli e disfarli ci si incasina
sempre... tutto perchè in realtà per l'interprete tutti i dati sono
stringhe!

Lo stesso codice di cui sopra in python diventa:

 #!/usr/bin/env python2

 b = { 'c': [ { 'a': 1 }, ] }
 a = b['c'].pop(0).keys()
 print '\n'.join(a), '\n'

che non dico sia chiarissimo ma a me risulta molto più leggibile.


Un programma si puo' scrivere in infiniti modi con Perl. Penso anche con Python.


-- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: