From vcrini at gmail.com Fri Apr 3 13:01:03 2009 From: vcrini at gmail.com (Valerio Crini) Date: Fri, 3 Apr 2009 22:01:03 +0200 Subject: [Firenze-pm] ed adesso una domanda di perl: export In-Reply-To: <200903311645.n2VGjllM027065@vivaldi29.register.it> References: <200903311645.n2VGjllM027065@vivaldi29.register.it> Message-ID: <3af0dd900904031301r552e6289gfb25392bde0a9fb3@mail.gmail.com> Innanzi tutto grazie ad entrambi per la risposta celere ed esauriente, Ho provato ad utilizzare la strada quella dell'utilizzo di Exporter::Simple, Export::Lexical ma entrambi non mi funzionano e non capisco perch?. Vi porto alcuni esempi: dato il package Dnd::Utils::Codes cos? fatto #!/usr/bin/perl package Dnd::Utils::Codes; use strict; use warnings; use base 'Exporter::Simple'; use version; our $VERSION = qv('0.1'); sub W_USAGE : Exported(codes) { return 'usage'; } 1; e utilizzandolo in #!/usr/bin/perl use strict; use warnings; use Dnd::Utils::Codes; print W_USAGE(); mi funziona ovvero mi stampa un favoloso 'usage' MA se lo lancio in un file fatto cos? #!/usr/bin/perl use strict; use warnings; use Dnd::Fourth::Power; my $power = Dnd::Fourth::Power->new(); $power->print; che a sua volta si appoggia sulla classe package Dnd::Fourth::Power; use strict; use warnings; use Dnd::Utils::Codes ; sub new { my $class = shift; my $init = shift; my $self = {}; bless $self, $class; return $self; } sub print { my $self=shift; print W_USAGE(); } 1; mi da un fantastico Undefined subroutine &Dnd::Fourth::Power::W_USAGE called at Dnd/Fourth/Power.pm line 17. Secondo voi come mai? Ovviamente avrete immaginato che il mio programma per come ? strutturato ? fatto un modo da dare l'errore ... Il giorno 31 marzo 2009 18.45, Oha ha scritto: > >Sfogliano CPAN, trovo per esempio Export::Lexical - non sono >sicuro che > era quello a cui pensavo (quindi magari cerca >ancora su search.cpan.org), > cmq, usando questo puoi fare > > sub sub1 : ExportLexical { ... } > > equivale a Exporter::Simple da cui pasto un pezzo di synopsis: > sub hello : Exported(greet,uk) { "hello there" } > sub askme : Exportable { "what you will" } > sub hi : Exportable(greet,us) { "hi there" } > > mi sembra inoltre che quest'ultimo sia piu' stabile/testato > > Oha > > > _______________________________________________ > Firenze-pm mailing list > Firenze-pm at pm.org > http://mail.pm.org/mailman/listinfo/firenze-pm > -------------- next part -------------- An HTML attachment was scrubbed... URL: From vcrini at gmail.com Thu Apr 9 15:17:39 2009 From: vcrini at gmail.com (Valerio Crini) Date: Fri, 10 Apr 2009 00:17:39 +0200 Subject: [Firenze-pm] ed adesso una domanda di perl: export In-Reply-To: <3af0dd900904031301r552e6289gfb25392bde0a9fb3@mail.gmail.com> References: <200903311645.n2VGjllM027065@vivaldi29.register.it> <3af0dd900904031301r552e6289gfb25392bde0a9fb3@mail.gmail.com> Message-ID: <3af0dd900904091517y8760eb4wffc4135cbc259203@mail.gmail.com> Alla fine ho optato per un banalissimo oggetto che mi incapsula tutti gli innumerevoli metodi che prima avevo bisogno di esportarlo. Utilizzando Class::Accessor mi sono evitato la "fatica" ;-) di creare il metodo new e quindi alla fine ho ottenuto comunque un risparmio di codice da scrivere. Il giorno 3 aprile 2009 22.01, Valerio Crini ha scritto: > Innanzi tutto grazie ad entrambi per la risposta celere ed esauriente, > > Ho provato ad utilizzare la strada quella dell'utilizzo di > Exporter::Simple, Export::Lexical ma entrambi non mi funzionano e non > capisco perch?. Vi porto alcuni esempi: > > dato il package > Dnd::Utils::Codes > > cos? fatto > > #!/usr/bin/perl > package Dnd::Utils::Codes; > use strict; > use warnings; > use base 'Exporter::Simple'; > > use version; > our $VERSION = qv('0.1'); > > > sub W_USAGE : Exported(codes) { > return 'usage'; > } > 1; > > e utilizzandolo in > > #!/usr/bin/perl > use strict; > use warnings; > use Dnd::Utils::Codes; > > print W_USAGE(); > > > mi funziona > ovvero mi stampa un favoloso > > 'usage' > > MA > > se lo lancio in un file fatto cos? > > #!/usr/bin/perl > > use strict; > use warnings; > use Dnd::Fourth::Power; > > my $power = Dnd::Fourth::Power->new(); > $power->print; > > > che a sua volta si appoggia sulla classe > > package Dnd::Fourth::Power; > use strict; > use warnings; > use Dnd::Utils::Codes ; > > sub new { > my $class = shift; > my $init = shift; > my $self = {}; > bless $self, $class; > return $self; > } > > > sub print { > my $self=shift; > print W_USAGE(); > } > > > 1; > > mi da un fantastico > > Undefined subroutine &Dnd::Fourth::Power::W_USAGE called at > Dnd/Fourth/Power.pm line 17. > > > Secondo voi come mai? > > Ovviamente avrete immaginato che il mio programma per come ? strutturato ? > fatto un modo da dare l'errore ... > > > Il giorno 31 marzo 2009 18.45, Oha ha scritto: > > >Sfogliano CPAN, trovo per esempio Export::Lexical - non sono >sicuro che >> era quello a cui pensavo (quindi magari cerca >ancora su search.cpan.org), >> cmq, usando questo puoi fare >> > sub sub1 : ExportLexical { ... } >> >> equivale a Exporter::Simple da cui pasto un pezzo di synopsis: >> sub hello : Exported(greet,uk) { "hello there" } >> sub askme : Exportable { "what you will" } >> sub hi : Exportable(greet,us) { "hi there" } >> >> mi sembra inoltre che quest'ultimo sia piu' stabile/testato >> >> Oha >> >> >> _______________________________________________ >> Firenze-pm mailing list >> Firenze-pm at pm.org >> http://mail.pm.org/mailman/listinfo/firenze-pm >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: