From dada at perl.it Wed Aug 1 04:35:30 2007 From: dada at perl.it (Aldo Calpini) Date: Wed, 01 Aug 2007 12:35:30 +0100 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <46AF5BFF.1090006@libero.it> References: <46ADFFC9.9010304@perl.it> <54618.129.192.97.5.1185805482.squirrel@upmail.polettix.it> <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> <806BBA2A-E107-46AA-B95A-CA9FD74D2744@cesmail.net> <46AE7C73.9060100@libero.it> <46AF3AC2.5080003@perl.it> <46AF6775.7060708@perl.it> <46AF5BFF.1090006@libero.it> Message-ID: <46B07002.8090904@perl.it> Emanuele Zeppieri ha scritto: > Non sia mai, facciamo domani che vicino alla birra ci mettiamo pure una zuppetta di chelonidi (slurp!) > ne deduco che se stamo a becca stasera. ditemi voi un'ora, io tendenzialmente non passerei per casa quindi dalle 18-19 potrei essere in giro. se invece vogliamo vederci tardi assai, tipo alle 10-10 e mezza, allora faccio avanti e indietro (e vengo con la mia favolosa torpedo blu, cos? non sto a pietire per un passaggio a casa). cheers, Aldo PS. i chelonidi sono ancora all'ingrasso, quindi niente zuppetta :-) From ema_zep at libero.it Wed Aug 1 05:11:07 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Wed, 01 Aug 2007 14:11:07 +0200 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <46B07002.8090904@perl.it> References: <46ADFFC9.9010304@perl.it> <54618.129.192.97.5.1185805482.squirrel@upmail.polettix.it> <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> <806BBA2A-E107-46AA-B95A-CA9FD74D2744@cesmail.net> <46AE7C73.9060100@libero.it> <46AF3AC2.5080003@perl.it> <46AF6775.7060708@perl.it> <46AF5BFF.1090006@libero.it> <46B07002.8090904@perl.it> Message-ID: <46B0785B.2000404@libero.it> Aldo Calpini wrote: Come dicevo ad Aldo poc'anzi, ditemi luogo ed ora ed io ci sar?. > PS. i chelonidi sono ancora all'ingrasso, quindi niente zuppetta :-) Non c'? problema. Visto che siamo tra estimatori di rettili, porter? i miei sauri: http://perlmonks.org/?node_id=343950 From balestra at cesmail.net Wed Aug 1 05:22:24 2007 From: balestra at cesmail.net (Marco Balestra) Date: Wed, 1 Aug 2007 14:22:24 +0200 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <46B07002.8090904@perl.it> References: <46ADFFC9.9010304@perl.it> <54618.129.192.97.5.1185805482.squirrel@upmail.polettix.it> <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> <806BBA2A-E107-46AA-B95A-CA9FD74D2744@cesmail.net> <46AE7C73.9060100@libero.it> <46AF3AC2.5080003@perl.it> <46AF6775.7060708@perl.it> <46AF5BFF.1090006@libero.it> <46B07002.8090904@perl.it> Message-ID: <07490ECD-A318-44B1-9E74-1117024EEAC2@cesmail.net> On 01/ago/07, at 13:35, Aldo Calpini wrote: > ne deduco che se stamo a becca stasera. ditemi voi un'ora, io > tendenzialmente non passerei per casa quindi dalle 18-19 potrei essere > in giro. se invece vogliamo vederci tardi assai, per me va bene anche sul presto, direi che dopo le 19:00 sarebbe meglio... alla "tana del luppolo" servono anche pizze mediocri e ghiotte fritture, dopotutto :-) -- Marco Balestra IT consultant balestra at cesmail.net From christoph at wernli.org Wed Aug 1 05:50:53 2007 From: christoph at wernli.org (Christoph Wernli) Date: Wed, 1 Aug 2007 14:50:53 +0200 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <07490ECD-A318-44B1-9E74-1117024EEAC2@cesmail.net> References: <46ADFFC9.9010304@perl.it> <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> <806BBA2A-E107-46AA-B95A-CA9FD74D2744@cesmail.net> <46AE7C73.9060100@libero.it> <46AF3AC2.5080003@perl.it> <46AF6775.7060708@perl.it> <46AF5BFF.1090006@libero.it> <46B07002.8090904@perl.it> <07490ECD-A318-44B1-9E74-1117024EEAC2@cesmail.net> Message-ID: <9b16401b0708010550wc7e5b46tc14fa60d027ef2dc@mail.gmail.com> On 8/1/07, Marco Balestra wrote: > > On 01/ago/07, at 13:35, Aldo Calpini wrote: > > > ne deduco che se stamo a becca stasera. ditemi voi un'ora, io > > tendenzialmente non passerei per casa quindi dalle 18-19 potrei essere > > in giro. se invece vogliamo vederci tardi assai, > > per me va bene anche sul presto, direi che dopo le 19:00 sarebbe > meglio... Concordo; intanto non serve molto di lavorare fino alle 10, vero? -c -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/roma/attachments/20070801/6e468474/attachment.html From dada at perl.it Wed Aug 1 07:49:45 2007 From: dada at perl.it (Aldo Calpini) Date: Wed, 01 Aug 2007 15:49:45 +0100 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <9b16401b0708010550wc7e5b46tc14fa60d027ef2dc@mail.gmail.com> References: <46ADFFC9.9010304@perl.it> <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> <806BBA2A-E107-46AA-B95A-CA9FD74D2744@cesmail.net> <46AE7C73.9060100@libero.it> <46AF3AC2.5080003@perl.it> <46AF6775.7060708@perl.it> <46AF5BFF.1090006@libero.it> <46B07002.8090904@perl.it> <07490ECD-A318-44B1-9E74-1117024EEAC2@cesmail.net> <9b16401b0708010550wc7e5b46tc14fa60d027ef2dc@mail.gmail.com> Message-ID: <46B09D89.6050908@perl.it> Christoph Wernli ha scritto: > On 8/1/07, *Marco Balestra* > wrote: > > per me va bene anche sul presto, direi che dopo le 19:00 sarebbe > meglio... > > > Concordo; intanto non serve molto di lavorare fino alle 10, vero? allora appuntamento alle ore 20 davanti alla tana (via dei gordiani 22), cena a base di fritture e pizza per i pi? avventurosi. seguiranno N+1 brindisi alla salute degli assenti... cheers, Aldo From ema_zep at libero.it Thu Aug 2 05:37:25 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Thu, 02 Aug 2007 14:37:25 +0200 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) Message-ID: <46B1D005.4010609@libero.it> Da tradizione, ogni incontro di perlisti che si rispetti deve dare luogo a discussioni e dibattiti. E siccome l'incontro di ieri si ? svolto secondo la migliore tradizione, ora bisogna fare in modo che non manchi il dibattito (? un lavoro sporco, ma qualcuno doveva farlo). Potremmo partire dalla presunta deprecazione di "our" a favore di "use vars" (io sostengo invece l'esatto contrario). A tale proposito mi permetto di segnalare che a pag. 861 di "Programming Perl" 3rd edition si dice testualmente: ------------------------------------------------------------------- use vars qw($frobbed @munge %seen); This pragma, once used to declare a global variable, is now somewhat deprecated in favor of the our modifier. The previous declaration is better accomplished using: our($frobbed, @munge, %seen); or even: our $frobbed = "F"; our @munge = "A" .. $frobbed; our %seen = (); ------------------------------------------------------------------- Ma questo ? niente. Visto che nell'attuale documentazione di Perl 5.8.8 si dice chiaro e tondo che il pragma "use vars" ? /obsolete/ e che /has been superseded by our declarations/ http://search.cpan.org/~nwclark/perl-5.8.8/lib/vars.pm Sarei interessato quindi a reperire questa famosa deprecazione della deprecazione (aldil? delle differenze semantiche tra i due costrutti, di cui abbiamo proficuamente discettato, sarei interessato proprio alla dichiarazione ufficiale circa la presunta deprecazione di our a favore di use vars, che contraddirebbe la documentazione autoritativa di Perl, con mio grande disappunto :-( Direi che come inizio pu? bastare. (Che significa che c'? in serbo di molto peggio ;-) Ciao, Emanuele. From ema_zep at libero.it Thu Aug 2 06:33:34 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Thu, 02 Aug 2007 15:33:34 +0200 Subject: [Roma.pm] Vox! Message-ID: <46B1DD2E.9020708@libero.it> Sempre a proposito di ieri, questa ? invece una cosa si cui si parlava con Aldo: http://www.vox.com/ (esempio di blog:) http://harold.vox.com/ Vox, una blog community con mashup complessi di ogni tipo, nata di recente, scritta interamente in Catalyst. Che dimostra che Perl 5 ? ancora vivo! (O perlomeno non completamente morto ;-) Ciao, Emanuele. From flavio at polettix.it Thu Aug 2 07:02:14 2007 From: flavio at polettix.it (Flavio Poletti) Date: Thu, 2 Aug 2007 16:02:14 +0200 (CEST) Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) In-Reply-To: <46B1D005.4010609@libero.it> References: <46B1D005.4010609@libero.it> Message-ID: <33529.195.130.249.248.1186063334.squirrel@upmail.polettix.it> Che dire? Sia io che Aldo eravamo convinti, ma... sembra che non riesca a ritrovare quell'esatto articolo/post/whatever che si scagliava pesantemente contro l'uso di our. Nel cercare, ho trovato questo articolo di tilly su PM: http://www.perlmonks.org/?node_id=48379 al quale Larry Wall ha risposto circa quattro anni dopo con questo: http://www.perlmonks.org/?node_id=393672 in cui sostanzialmente dice che our ha una utilit? marginale in P5 ma pensato in ottica futura P6. Il che ? anche confermato dal fatto che our ? ancora vivo e vegeto in Perl 6, affiancato da svariate altre forme di dichiarazione di variabile (v. http://dev.perl.org/perl6/doc/design/syn/S03.html): my $foo # ordinary lexically scoped variable our $foo # lexically scoped alias to package variable has $foo # object attribute state $foo # persistent lexical (cloned with closures) constant $foo # lexically scoped compile-time constant E' inoltre interessante notare che L. Wall contraddice parzialmente tanto il proprio libro quanto la documentazione: Something that seems to be missed every time this discussion is referenced is that the main purpose of our is not to replace use vars, but to serve as a syntactic peg upon which lexically scoped traits can be hung. Un altro articolo utile per le litig*COUGH*riflessioni a seguire ? il seguente: http://www.perlmonks.org/?node_id=105446 in cui Ovid puntualizza come our sia profondamente differente da my. Ora, l'ignoranza non ? una scusa (e sicuramente chi usa our dovrebbe sapere che "'our' is not 'my'"!!!), ma vale comunque la pena riflettere un attimo sulla profonda differenza nella natura delle variabili dichiarate con my e "fatte emergere" con our. Ovid non prende chiaramente posizione riguardo ad our, anche se si capisce che non ? proprio impressionato dalla sua disponibilit? ("Interesting to note that the only uses I've found for our have been hacking bad code..."). Personalmente, infine (e questa ? una considerazione ortogonale alla "deprecabilit?" di our), cerco di evitare come la peste le variabili di package, per cui non uso n? our n? use vars, nonostante (come molti altri) trovi utile utilizzare our in certe particolari occasioni, come con Exporter: package What::Ever; use base 'Exporter'; # ATTENZIONE! our @EXPORT_OK = qw( foo bar baz ); panet: ebbene s?, queste due righe qui sopra sono sostanzialmente *tutto* ci? di cui hai bisogno per utilizzare Exporter in maniera pulita. In questo modo, stai dicendo che accetti che altri importino le sub 'foo', 'bar' e 'baz', ad esempio con use What::Ever qw( bar ); Ed ora si pu? dare la stura a ben *due* thread, visto che recentemente sono state mosse critiche al modulo pragmatico 'base' tali da indurre Schwern a pensare di rimpiazzarlo con un altro modulo pragmatico, 'parent': http://www.nntp.perl.org/group/perl.perl5.porters/2007/07/msg127303.html Ciao! > Da tradizione, ogni incontro di perlisti che si rispetti deve dare luogo > a discussioni e dibattiti. > E siccome l'incontro di ieri si ? svolto secondo la migliore tradizione, > ora bisogna fare in modo che non manchi il dibattito (? un lavoro > sporco, ma qualcuno doveva farlo). > > Potremmo partire dalla presunta deprecazione di "our" a favore di "use > vars" (io sostengo invece l'esatto contrario). > > A tale proposito mi permetto di segnalare che a pag. 861 di "Programming > Perl" 3rd edition si dice testualmente: > > ------------------------------------------------------------------- > use vars qw($frobbed @munge %seen); > > This pragma, once used to declare a global variable, is now somewhat > deprecated in favor of the our modifier. The previous declaration is > better accomplished using: > > our($frobbed, @munge, %seen); > > or even: > > our $frobbed = "F"; > our @munge = "A" .. $frobbed; > our %seen = (); > ------------------------------------------------------------------- > > Ma questo ? niente. > Visto che nell'attuale documentazione di Perl 5.8.8 si dice chiaro e > tondo che il pragma "use vars" ? /obsolete/ e che /has been superseded > by our declarations/ > http://search.cpan.org/~nwclark/perl-5.8.8/lib/vars.pm > > Sarei interessato quindi a reperire questa famosa deprecazione della > deprecazione (aldil? delle differenze semantiche tra i due costrutti, di > cui abbiamo proficuamente discettato, sarei interessato proprio alla > dichiarazione ufficiale circa la presunta deprecazione di our a favore > di use vars, che contraddirebbe la documentazione autoritativa di Perl, > con mio grande disappunto :-( > > Direi che come inizio pu? bastare. > (Che significa che c'? in serbo di molto peggio ;-) > > Ciao, > Emanuele. > _______________________________________________ > Roma mailing list > Roma at pm.org > http://mail.pm.org/mailman/listinfo/roma > From a.r.ferreira at gmail.com Thu Aug 2 06:58:58 2007 From: a.r.ferreira at gmail.com (Adriano Ferreira) Date: Thu, 2 Aug 2007 10:58:58 -0300 Subject: [Roma.pm] 2007 Perl Survey Message-ID: <73ddeb6c0708020658w22101f03ve63c104daa3b06f1@mail.gmail.com> I am forwarding the invitation letter for taking the 2007 Perl Survey. Let's have some data about Perl users all around the world They are calling as well for volunteers to translate the survey material for other languages as well. http://perlsurvey.org/translations/. Lend a hand if you can. Regards, Adriano Ferreira ------------- Take part in the 2007 Perl Survey! The Perl Survey is an attempt to capture a picture of the Perl community in all its diversity. No matter what sort of Perl programmer you are, we'd love to hear from you. The survey can be found at: http://perlsurvey.org/ It only takes about 5 minutes to complete. The survey will be open until September 30th, 2007. After that, we'll be reporting on the results and making the data freely available. Please feel free to forward this email to any other Perl programmers you know. Thanks for your help! Yours, Kirrily "Skud" Robert The Perl Survey info at perlsurvey.org From flavio at polettix.it Thu Aug 2 07:19:05 2007 From: flavio at polettix.it (Flavio Poletti) Date: Thu, 2 Aug 2007 16:19:05 +0200 (CEST) Subject: [Roma.pm] 2007 Perl Survey In-Reply-To: <73ddeb6c0708020658w22101f03ve63c104daa3b06f1@mail.gmail.com> References: <73ddeb6c0708020658w22101f03ve63c104daa3b06f1@mail.gmail.com> Message-ID: <33606.195.130.249.248.1186064345.squirrel@upmail.polettix.it> Volevo avvisarvi che ho gi? inviato il materiale tradotto due o tre giorni fa, sembra non sia ancora stato messo online. Tanto per risparmiarvi la doppia fatica, casomai... Ciao, Flavio. > I am forwarding the invitation letter for taking the 2007 Perl Survey. > > Let's have some data about Perl users all around the world > > They are calling as well for volunteers to translate the survey > material for other languages as well. > http://perlsurvey.org/translations/. Lend a hand if you can. > > Regards, > Adriano Ferreira > > ------------- > > > Take part in the 2007 Perl Survey! > > The Perl Survey is an attempt to capture a picture of the Perl community > in all its diversity. No matter what sort of Perl programmer you are, > we'd love to hear from you. > > The survey can be found at: http://perlsurvey.org/ > > It only takes about 5 minutes to complete. > > The survey will be open until September 30th, 2007. After that, we'll be > reporting on the results and making the data freely available. > > Please feel free to forward this email to any other Perl programmers > you know. > > Thanks for your help! > > Yours, > > Kirrily "Skud" Robert > The Perl Survey > info at perlsurvey.org > _______________________________________________ > Roma mailing list > Roma at pm.org > http://mail.pm.org/mailman/listinfo/roma > From ema_zep at libero.it Thu Aug 2 07:59:26 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Thu, 02 Aug 2007 16:59:26 +0200 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) In-Reply-To: <33529.195.130.249.248.1186063334.squirrel@upmail.polettix.it> References: <46B1D005.4010609@libero.it> <33529.195.130.249.248.1186063334.squirrel@upmail.polettix.it> Message-ID: <46B1F14E.8050403@libero.it> Flavio Poletti wrote: > Che dire? Sia io che Aldo eravamo convinti, ma... sembra che non riesca a > ritrovare quell'esatto articolo/post/whatever che si scagliava > pesantemente contro l'uso di our. In ogni caso ? una risposta esauriente e interessantissima ;-) > Ovid non prende chiaramente posizione riguardo > ad our, anche se si capisce che non ? proprio impressionato dalla sua > disponibilit? ("Interesting to note that the only uses I've found for our > have been hacking bad code..."). Secondo me il vantaggio sostanziale di our rispetto a use vars, ? che our ? BLOCK-scoped. Da questo fatto derivano alcune cose di un certo (modesto) interesse, come la possibilit? di dichiarare variabili package-scoped (sotto use strict) anche quando ho due o pi? dichiarazioni di package nello stesso file (sia pure ricorrendo al blocco dopo la dichiarazione di package terminata che, come diceva giustamente Aldo, ? assolutamente sacrilega). Al contrario, use vars non ? BLOCK-scoped. Non so se al vecchio Ovid la cosa sia sfuggita o se proprio non gliene frega niente perch? la ritiene una cosa inutile. > Personalmente, infine (e questa ? una considerazione ortogonale alla > "deprecabilit?" di our), cerco di evitare come la peste le variabili di > package, Perfettamente d'accordo... > per cui non uso n? our n? use vars, nonostante (come molti altri) > trovi utile utilizzare our in certe particolari occasioni, come con > Exporter: > > package What::Ever; > use base 'Exporter'; # ATTENZIONE! > our @EXPORT_OK = qw( foo bar baz ); Certo, oppure con la classica $VERSION, che deve essere acceduta dall'esterno in una quantit? di casi. Grazie per l'esaurientissima risposta, che da sola varrebbe un articolo su Perl.it. (E che mi permette di tirare un certo sospiro di sollievo sull'attendibilit? della documentazione ufficiale di Perl ;-) Ciao, Emanuele. From balestra at cesmail.net Thu Aug 2 22:49:55 2007 From: balestra at cesmail.net (Marco Balestra) Date: Fri, 3 Aug 2007 07:49:55 +0200 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) In-Reply-To: <46B1D005.4010609@libero.it> References: <46B1D005.4010609@libero.it> Message-ID: On 02/ago/07, at 14:37, Emanuele Zeppieri wrote: > This pragma, once used to declare a global variable, is now somewhat > deprecated in favor of the our modifier. The previous declaration is > better accomplished using: Sei pi? di un carrarmato, sei una garanzia :-DDD -- Marco Balestra IT consultant balestra at cesmail.net From ema_zep at libero.it Fri Aug 3 00:14:39 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Fri, 03 Aug 2007 09:14:39 +0200 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) In-Reply-To: <46B1F14E.8050403@libero.it> References: <46B1D005.4010609@libero.it> <33529.195.130.249.248.1186063334.squirrel@upmail.polettix.it> <46B1F14E.8050403@libero.it> Message-ID: <46B2D5DF.5030701@libero.it> Un'altra considerazione sull'argomento (che non ? in polemica con nessuno, se non con me stesso, visto che mi smentisco da solo). Emanuele Zeppieri wrote: > [...] > (sia pure ricorrendo al blocco dopo la dichiarazione di package > terminata che, come diceva giustamente Aldo, ? assolutamente sacrilega). Un blocco dopo un terminatore d'istruzione (punto e virgola) sar? pure brutto da vedere ma, pensandoci bene, ? perfettamente corretto. Il fatto ? che il blocco non ? per niente riferito alla dichiarazione di package: esso costituisce invece uno scope lessicale del tutto indipendente dallo scope del package (il quale va dalla dichiarazione di package fino alla fine del blocco, o del file, che la contiene). Faccio un esempio: package Foo; { package Bar; { }; our $var = 11; } A quale package appartiene $var? Di primo acchito, verrebbe da dire che $var appartiene a Foo... Invece no. Siccome i blocchi *non* sono riferiti ai package, $var appartiene a Bar, perch? la dichiarazione del package Bar vive fino alla fine del blocco che la contiene (che ? quello pi? esterno). In altre parole la presenza del blocco pi? interno ? del tutto ininfluente e non ? essa che determina lo scope del package Bar. Riformattando il codice cos? forse si intuisce meglio (la formattazione precedente era volutamente truffaldina ;-) package Foo; { package Bar; { }; our $var = 99; } print $Bar::var; # Per verificare. Quindi in definitiva, ancorch? brutta, la commistione tra i terminatori d'istruzione ed i blocchi ? perfettamente coerente con l'usuale semantica degli uni e degli altri. Semmai le ambiguit? derivano dal fatto che le variabili our rispondono simultaneamente a 2 distinte regole di scope: sono visibili solo all'interno del blocco in cui sono dichiarate (se non qualificate), ma per quanto riguarda l'appartenenza al package seguono le regole di scope della dichiarazione di package, che sono diverse. Per? come al solito, basta saperlo. (A saperlo!) Ciao, Emanuele. From ema_zep at libero.it Fri Aug 3 00:15:33 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Fri, 03 Aug 2007 09:15:33 +0200 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) In-Reply-To: References: <46B1D005.4010609@libero.it> Message-ID: <46B2D615.2090405@libero.it> Marco Balestra wrote: > Sei pi? di un carrarmato, Diciamo un panzer (nel senso della panza :-( ;-) Ciao, Emanuele. From dada at perl.it Mon Aug 6 06:21:57 2007 From: dada at perl.it (Aldo Calpini) Date: Mon, 06 Aug 2007 14:21:57 +0100 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) In-Reply-To: <46B2D5DF.5030701@libero.it> References: <46B1D005.4010609@libero.it> <33529.195.130.249.248.1186063334.squirrel@upmail.polettix.it> <46B1F14E.8050403@libero.it> <46B2D5DF.5030701@libero.it> Message-ID: <46B72075.2060401@perl.it> che dire... Emanuele ha ragione, non esistono prove inconfutabili del fatto che our sia deprecato. io del resto lo sapevo benissimo, ma quando mi sono reso conto che Flavio stava arrampicandosi sugli specchi, gli ho un po' fatto da spalla, per evitargli di fare una figuraccia... sapete quant'? sensibile quel ragazzo... no, eh? :-) d'accordo, ? stato il classico abbaglio di una notte di mezza estate. derivante anche dal fatto, per?, che a me - al di l? dell'apprezzamento ufficiale - our nun me piace proprio. e in questo almeno sento di non sentirmi del tutto solo :-) e siccome nutro da sempre una forma di latente sadismo verso gli equini deceduti, voglio puntualizzare su quanto... Emanuele Zeppieri wrote: > Semmai le ambiguit? derivano dal fatto che le variabili our rispondono > simultaneamente a 2 distinte regole di scope: sono visibili solo > all'interno del blocco in cui sono dichiarate (se non qualificate), ma > per quanto riguarda l'appartenenza al package seguono le regole di scope della dichiarazione di package, che sono diverse. > detta cos? sembra quasi un complimento! invece... la cosa che trovo orenda (si, con una erre) ? quel "visibile". fondamentalmente, le variabili our *non* hanno uno scope. ma usandole come variabili di package *sembra* che ce l'abbiano. prendete ad esempio questo: { our $x = 42; } print "x=$x\n"; # ==> 42 o perfino questo: $x = 42; print "x=$x\n"; # ==> 42 { our $x = 43; print "x=$x\n"; # ==> 43 } print "x=$x\n"; # ==> 43 notate che il primo esempio ha addirittura il coraggio di non compilare con use strict! il messaggio dice: Variable "$x" is not imported. ma imported de che? le variabili our introducono delle variabili di package (o, nel caso del solo package main, sostanzialmente delle variabili globali), e delimitarle in uno scope ne altera solo la visibilit? da parte di *altri* package senza qualifica completa. la loro definizione non va mai out-of-scope (ok, mai fino a fine programma o EOF :-). quindi: - non sono "scopabili" come le variabili local - pur non essendolo, si lamentano con strict quando vengono "scopate" - sbrodolano la loro visibilit? su altri package definiti nello stesso file non sembra un po' meno bello anche a voi our adesso? :-) cheers, Aldo From oha at oha.it Mon Aug 6 07:34:19 2007 From: oha at oha.it (Oha) Date: Mon, 06 Aug 2007 16:34:19 +0200 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) Message-ID: <200708061434.l76EYJId023987@vivaldi22.register.it> >- non sono "scopabili" come le variabili local e' un retaggio religioso. solo my e' scopabile, our no. altrimenti sarebbe ourgy! Oha From ema_zep at libero.it Tue Aug 7 02:08:30 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Tue, 07 Aug 2007 11:08:30 +0200 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) In-Reply-To: <46B72075.2060401@perl.it> References: <46B1D005.4010609@libero.it> <33529.195.130.249.248.1186063334.squirrel@upmail.polettix.it> <46B1F14E.8050403@libero.it> <46B2D5DF.5030701@libero.it> <46B72075.2060401@perl.it> Message-ID: <46B8368E.8020706@libero.it> Aldo Calpini wrote: > [...] > fondamentalmente, le > variabili our *non* hanno uno scope. > ma usandole come variabili di > package *sembra* che ce l'abbiano. Beh, se quello di prima era un abbaglio, questa ? un'insolazione :-) Le variabili our lo scope ce l'hanno *eccome*. Basterebbe appellarsi alla documentazione del Perl: --------------------------------------------------- When use strict 'vars' is in effect, our lets you use declared global variables without qualifying them with package names, within the lexical scope of the our declaration. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ our associates a simple name with a package variable in the current package, for use within the current scope. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In other words, our has the same scoping rules as my ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --------------------------------------------------- http://perldoc.perl.org/functions/our.html ma ormai comincia a diventare troppo facile ;-) Perci? vengo al tuo esempio: > prendete ad esempio questo: > > { > our $x = 42; > } > print "x=$x\n"; # ==> 42 Dov'? che ? fallace? Nel fatto che non usi il pragma strict vars, ovviamente. (E questo s? che ? veramente oRendo!) Basta fare: use strict; { our $x = 42 } print $x; # Errore! ed ottieni un errore di compilazione (del resto l'ammetti tu stesso), che dimostra che il blocco l'effetto sulla visibilit? della variabile our ce l'ha eccome, e che quindi la variabile our ? perfettamente scopata (ed ? contenta di esserlo). Il fatto che our non possa avere effetti di limitazione di visibilit? senza strict mi sembra ovvio: our ha comunque istanziato una variabile nello stash del package corrente (nel tuo caso main), per cui in assenza di strict vars le variabili non qualificate rimangono comunque utilizzabili (e vengono riferite automaticamente al package corrente). > o perfino questo: > > $x = 42; > print "x=$x\n"; # ==> 42 > { > our $x = 43; > print "x=$x\n"; # ==> 43 > } > print "x=$x\n"; # ==> 43 Ti faccio notare che hai riassegnato la stessa identica variabile di package ($main::x), per cui che cosa ci trovi di strano nel fatto che dopo la seconda assegnazione alla *stessa* variabile essa assuma un altro valore?!! Va be' che fa caldo... > notate che il primo esempio ha addirittura il coraggio di non compilare > con use strict! Non ? sfrontatezza, ? lo scope, bellezza ;-) >il messaggio dice: Variable "$x" is not imported. ma > imported de che? A parte il fatto che i messaggi sono due: Variable "$x" is not imported ... Global symbol "$x" requires explicit package name Cosa ci sarebbe di strano? Ti dice che per usare una variabile non qualificata al di fuori del suo scope (sotto strict) la devi importare, oppure la devi qualificare col nome del package. In altre parole ti dice che stai utilizzando $x al di fuori del suo scope, per l'appunto ;-) (Concordo giusto sul fatto che il primo messaggio in genere ? riferito ad altro...) > le variabili our introducono delle variabili di package (o, nel caso del > solo package main, sostanzialmente delle variabili globali), e > delimitarle in uno scope ne altera solo la visibilit? da parte di > *altri* package senza qualifica completa. Ma manco se te sbatti per teRa! Our ne limita la visibilit? *anche* nello stesso package (sotto strict), come chiaramente (gi?) mostrato dallo snippet: use strict; { our $x = 42 } print $x; # Errore, qui $x non e` piu` visibile # e siamo sempre nello stesso package (main). > la loro definizione non va mai > out-of-scope (ok, mai fino a fine programma o EOF :-). No, come abbiamo visto va out-of-scope al di fuori del blocco che la contiene, se sei sotto strict vars. (In realt? ci va anche se non usi strict, ma la variabile non qualificata rimane accessibile per via delle regole di visibilit? sulle variabili in assenza di strict vars, che sono prevalenti). > quindi: > > - non sono "scopabili" come le variabili local Nope, come abbiamo visto, lo sono. > - pur non essendolo, si lamentano con strict quando vengono "scopate" Arinope, lo sono e quindi giustamente si lamentano. > - sbrodolano la loro visibilit? su altri package definiti nello stesso file Manco pe' gnente: nel tuo esempio sei sempre nello stesso *identico* package (main), ed hai semplicemente riassegnato un diverso valore alla *stessa identica* variabile di package, come gi? detto. Ed eccone la prova, se non fosse chiaro: $x = 42; print "$main::x\n"; # ==> 42 { our $x = 43; print "$main::x\n"; # ==> 43 } print "$main::x\n"; # ==> 43 Tra l'altro, dove starebbero questi diversi package?! Per lamentarti di questi presunti sbrodolamenti, di package avresti dovuto definirne almeno un paio (mediante la keyword "package"), e invece non hai definito neanche uno! (Per cui rimani sotto (il solo) package main tutta la vita). In definitiva, una variabile our *?* scopata e *non* sbrodola. (Sar? strano, ma se sbrodolava e non era scopabile forse era peggio). Ciao, Emanuele. From dada at perl.it Tue Aug 7 03:53:55 2007 From: dada at perl.it (Aldo Calpini) Date: Tue, 07 Aug 2007 11:53:55 +0100 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) In-Reply-To: <46B8368E.8020706@libero.it> References: <46B1D005.4010609@libero.it> <33529.195.130.249.248.1186063334.squirrel@upmail.polettix.it> <46B1F14E.8050403@libero.it> <46B2D5DF.5030701@libero.it> <46B72075.2060401@perl.it> <46B8368E.8020706@libero.it> Message-ID: <46B84F43.3020701@perl.it> Emanuele Zeppieri wrote: > Beh, se quello di prima era un abbaglio, questa ? un'insolazione :-) > Le variabili our lo scope ce l'hanno *eccome*. > ehhhhhhh vabbe'. in effetti mischiavo (un po' ad arte) la visibilit? con l'esistenza. d'accordo che le variabili our vanno dichiarate con strict e hanno *visibilit?* limitata al loro scope, ma continuano ad *esistere* anche al di fuori. mi riferisco a: use strict; { our $x = 42; } print $main::x; # ==> 42 mi rendo conto che ? perfettamente legale, coerente, blah blah blah, ed ? proprio per questo che esiste our. ma a me, comunque, sta cosa mi sembra innaturale. >> - sbrodolano la loro visibilit? su altri package definiti nello stesso file >> > > Manco pe' gnente: nel tuo esempio sei sempre nello stesso *identico* > package (main), ed hai semplicemente riassegnato un diverso valore alla > *stessa identica* variabile di package, come gi? detto. > eh, qui mi riferivo non agli snippet del mio post, ma a quello che avevamo provato sul Mac-a-bestia di panet, ossia: use strict; package Foo; our $x = 42; package main; print $x; # ==> sbrodola 42 mi scuso se ho tentato - invano, grazie ad Emanuele - di seminare un po' di FUD ma... l'ho gi? detto che a me our mi sta sulle palle? :-) cheers, Aldo From ema_zep at libero.it Tue Aug 7 03:12:06 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Tue, 07 Aug 2007 12:12:06 +0200 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) In-Reply-To: <46B84F43.3020701@perl.it> References: <46B1D005.4010609@libero.it> <33529.195.130.249.248.1186063334.squirrel@upmail.polettix.it> <46B1F14E.8050403@libero.it> <46B2D5DF.5030701@libero.it> <46B72075.2060401@perl.it> <46B8368E.8020706@libero.it> <46B84F43.3020701@perl.it> Message-ID: <46B84576.4060807@libero.it> Aldo Calpini wrote: > mi scuso se ho tentato - invano, grazie ad Emanuele - di seminare un po' > di FUD ma... l'ho gi? detto che a me our mi sta sulle palle? :-) Diciamo che non eri riuscito a scoparle, e allora hai raccontato in giro che non erano scopabili (un classico ;-) From dada at perl.it Tue Aug 7 04:17:28 2007 From: dada at perl.it (Aldo Calpini) Date: Tue, 07 Aug 2007 12:17:28 +0100 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) In-Reply-To: <46B84F43.3020701@perl.it> References: <46B1D005.4010609@libero.it> <33529.195.130.249.248.1186063334.squirrel@upmail.polettix.it> <46B1F14E.8050403@libero.it> <46B2D5DF.5030701@libero.it> <46B72075.2060401@perl.it> <46B8368E.8020706@libero.it> <46B84F43.3020701@perl.it> Message-ID: <46B854C8.9030700@perl.it> Aldo Calpini wrote: > eh, qui mi riferivo non agli snippet del mio post, ma a quello che > avevamo provato sul Mac-a-bestia di panet, ossia: > > use strict; > package Foo; > our $x = 42; > package main; > print $x; # ==> sbrodola 42 > prima che qualcuno (indovinate chi :-) mi castighi nuovamente, ritratto. la "sbrodolata" non ? colpa di our, deriva semplicemente dal fatto di aver messo 2 package nello stesso scope. lo fa anche my: use strict; package Foo; my $x = 42; package main; print $x; # ==> 42 a questo punto mi sto guadagnando una particina nell'improbabilissimo seguito del dottor Stranamore, sottotitolato "How I learned to stop worrying and love the our keyword" :-( cheers, Aldo From oha at oha.it Tue Aug 7 05:41:14 2007 From: oha at oha.it (Oha) Date: Tue, 07 Aug 2007 14:41:14 +0200 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) Message-ID: <200708071241.l77CfEXa026891@vivaldi07.register.it> >Diciamo che non eri riuscito a scoparle, e allora hai raccontato in giro >che non erano scopabili (un classico ;-) e tu invece ci sei riuscito, e lo vai a dire in giro... anche questo e' un classico :) Oha From ema_zep at libero.it Tue Aug 7 06:03:31 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Tue, 07 Aug 2007 15:03:31 +0200 Subject: [Roma.pm] Mica finisce qui... (our vs. use vars) In-Reply-To: <200708071241.l77CfEXa026891@vivaldi07.register.it> References: <200708071241.l77CfEXa026891@vivaldi07.register.it> Message-ID: <46B86DA3.8070301@libero.it> Oha wrote: >> Diciamo che non eri riuscito a scoparle, e allora hai raccontato in giro >> che non erano scopabili (un classico ;-) > > e tu invece ci sei riuscito, e lo vai a dire in giro... anche questo e' un classico :) In realt? riesci a scoparle solo se sei "strict", che non ? un gran complimento ;-)