Hm... how to measure the overhead of a module? There is a XS version of the module which is used if you have a C compiler. I don't know the exact overhead, but I know that it is fast.
I have no experience with the pure perl version of that module. If all you have to do with the dates is the simple string transformation you are right. As I said before: I recommend to use DT if you are working with dates a lot. Doing math on dates and times is annoying, because of leap years, epochs, timezones and so on. If you need this: Using DateTime is recommended. If not: Its not :) If you are ONLY using pure perl modules: You can include all required modules in your distribution. It should run on any perl installation, even in a shared host environment. App::FatPacker helps you doing this... But this doesn't work as soon as you use XS modules. On 10/30/2012 04:03 PM, Craig Chant wrote: > Thanks Lukas, > > I appreciate there is DateTime , though I have so much legacy code that uses > my helper class re-writing everything will be a mammoth task. > > I hand rolled a lot when I first started out with Perl, didn't know much > about CPAN or PPM, and couldn't load any modules that weren't part of the > core install on the original 'shared' hosting I was using. > > Plus I always felt loading an entire module to re-arrange a tiny string seems > a bit OTT? > > Dunno, what's the overhead of DateTime? > > Craig. > > -----Original Message----- > From: Lukas Thiemeier [mailto:spamcatc...@thiemeier.net] > Sent: 30 October 2012 14:52 > To: catalyst@lists.scsys.co.uk > Subject: Re: [Catalyst] Global 'helper' methods > > You can also define your constants in "YourApp/Constants.pl", and "use" > YourApp::Constants wherever you need them. > > YourApp/Constants.pm: > use constant { FOO => 1 }; > 1; > > Controller.pm: > > use YourApp::Constants; > > # and in some method > ... > my $global_foo = FOO; > > There might be a better way, but this works... > > For handling dates, I recommend "DateTime", available on cpan: > > Another reason to use DBIC: > DBIx::Class::Inflatecolumn::DateTime automatically transforms dates stored in > a database into a DateTime object, which can be used like this: > > my $uk_string = $datetime->dmy('/'); > my $us_string = $datetime->ymd('-'); > > But DateTime is not related to DBIC, DBIC just makes using it easy. > > Use it if you have to work with dates a lot. It has lots of methods for > outputting dates, times or both in different formats, and it allows > datetime-math... > > > On 10/30/2012 03:39 PM, Craig Chant wrote: >> Well I opted for putting my globals (methods and constants) in >> MyApp.pm >> >> It's working grand with $c->myMethod or $c->MY_CONSTANT >> >> I use to have them working as a bareword within my application , but >> $c->MY_CONSTANT is just as easy! >> >> Many thanks for all the input and help, it really is appreciated. >> >> -----Original Message----- >> From: Lukas Thiemeier [mailto:spamcatc...@thiemeier.net] >> Sent: 30 October 2012 13:56 >> To: catalyst@lists.scsys.co.uk >> Subject: Re: [Catalyst] Global 'helper' methods >> >> Hi Craig, >> >> Writing helpers in your main App.pm and using roles is not either-or. >> >> Roles are one possibility to modify your classes in a reusable way. >> >> If your helpers are really global, which means that they are used by all, or >> almost all your controllers, I would put them into your main application >> class. >> >> If you have more than one application which make use of the same >> helpers: Put them into a role: >> >> YourHelperRole.pm: >> >> package YourHelperRole; >> use Moose::Role; >> >> has "some_attribute" => ( ... ); # if you need attributes >> >> sub helpermethod1{ >> my ($self, $other, $args) = @_; >> do_something(); >> } >> >> sub helpermethod2{ >> my ($self, $other, $args) = @_; >> do_something_different(); >> } >> >> no Moose::Role; # or use namespace::autoclean or MooseX::MarkAsMethod >> 1; >> >> App.pm: >> >> use Catalyst qw( ... ); >> extends "Catalyst"; >> with qw/YourHelperRole/; >> >> ... >> >> In my opinion, extending your main App.pm with roles is only useful if you >> need the same helpers in different locations, too. >> If you only need them for that single application, avoid the overhead >> related to using roles. >> >> If you have helpers which are only needed by some controllers, create a role >> for your controllers. You can not only implement helpers in you roles, you >> can also create method-modifiers, which change the way your methods behave. >> >> Here is an example, which writes sth to the log, after the "delete" >> method was called: >> >> YourLogRole.pm: >> >> package YourLogRole; >> >> use Moose::Role; >> requires qw/delete/; #die if the consuming class has no "delete" >> >> after "delete" => sub{ >> my ($self, $c) = @_; >> $c->log->debug("DELETE called"); >> }; >> >> no Moose::Role; >> 1; >> >> Controller1.pm: (has the helpers, but no logging) >> >> package Controller1; >> use Moose; >> extends "Catalyst::Controller"; >> with qw/ >> YourHelperRole >> /; >> >> sub someaction :Local { >> my ($self, $c) =@_; >> $self->helpermethod1(); >> } >> >> ... >> >> Controller2.pm: (has helpers AND logging) >> >> package Controller2; >> use Moose; >> extends "Catalyst::Controller"; >> with qw/ >> YourLogRole >> YourHelperRole >> /; >> >> sub delete :Local :Args(1) { ... } >> >> Controller3.pm (has logging, but no helpers) >> >> package Controller3; >> use Moose; >> extends "Catalyst::Controller"; >> with qw/ >> YourLogRole >> /; >> >> sub delete :Local :Args(1) { ... } >> >> Roles are very powerful tools. I use them a lot. >> Read the Moose docs for more information. >> >> If you don't want to learn Moose, roles and so on now, just remember: >> >> 1. write sth in a role >> 2. consume the role in a moose class, using "with" >> 3. your roles methods and attributes will be available in the >> consuming class >> >> Lukas >> >> On 10/30/2012 02:03 PM, Craig Chant wrote: >>> Hi, >>> >>> >>> >>> Please could you advise the best way of having a global 'helper' >>> class that has all commonly used methods in it accessible for any >>> part of the catalyst app. >>> >>> >>> >>> I found this thread >>> http://stackoverflow.com/questions/11941836/catalyst-global-subroutin >>> e >>> s >>> >>> >>> >>> With one indicating it's ok to put them in the main MyApp.pm and >>> another saying to use Moose & Roles. >>> >>> >>> >>> What is considered the correct way and could you provide an example >>> of how I create this helper class and bolt it to the Catalyst application. >>> >>> >>> >>> Many thanks, >>> >>> >>> >>> */Craig Chant/* >>> >>> I.T. Manager >>> >>> Description: cid:image001.png@01CD5F4A.17E848D0 >>> >>> Main Line 01903 602664 >>> >>> Direct Line 01903 227753 >>> >>> Visit our website http://www.homeloanpartnership.com >>> >>> *HomeLoan Partnership have been named the Best Mortgage Network, >>> 2012, at the myintroducer.com Industry Awards* >>> >>> >>> >>> This Email and any attachments contain confidential information and >>> is intended solely for the individual to whom it is addressed. If >>> this Email has been misdirected, please notify the author as soon as >>> possible. If you are not the intended recipient you must not >>> disclose, distribute, copy, print or rely on any of the information >>> contained, and all copies must be deleted immediately. Whilst we take >>> reasonable steps to try to identify any software viruses, any >>> attachments to this e-mail may nevertheless contain viruses, which >>> our anti-virus software has failed to identify. You should therefore >>> carry out your own anti-virus checks before opening any documents. >>> HomeLoan Partnership will not accept any liability for damage caused >>> by computer viruses emanating from any attachment or other document >>> supplied with this e-mail. >>> HomeLoan Partnership reserves the right to monitor and archive all >>> e-mail communications through its network. No representative or >>> employee of HomeLoan Partnership has the authority to enter into any >>> contract on behalf of HomeLoan Partnership by email. HomeLoan >>> Partnership is a trading name of H L Partnership Limited, registered >>> in England and Wales with Registration Number 5011722. Registered >>> office: 26-34 Old Street, London, EC1V 9QQ. H L Partnership Limited >>> is authorised and regulated by the Financial Services Authority. >>> >>> >>> _______________________________________________ >>> List: Catalyst@lists.scsys.co.uk >>> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst >>> Searchable archive: >>> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ >>> Dev site: http://dev.catalyst.perl.org/ >> >> >> _______________________________________________ >> List: Catalyst@lists.scsys.co.uk >> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst >> Searchable archive: >> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ >> Dev site: http://dev.catalyst.perl.org/ This Email and any attachments >> contain confidential information and is intended solely for the >> individual to whom it is addressed. If this Email has been >> misdirected, please notify the author as soon as possible. If you are >> not the intended recipient you must not disclose, distribute, copy, >> print or rely on any of the information contained, and all copies must >> be deleted immediately. Whilst we take reasonable steps to try to >> identify any software viruses, any attachments to this e-mail may >> nevertheless contain viruses, which our anti-virus software has failed >> to identify. You should therefore carry out your own anti-virus checks >> before opening any documents. HomeLoan Partnership will not accept any >> liability for damage caused by computer viruses emanating from any >> attachment or other document supplied with this e-mail. HomeLoan >> Partnership reserves the right to monitor and archive all e-mail >> communications through its network. No representative or employee of >> HomeLoan Partn > ership ha > s the authority to enter into any contract on behalf of HomeLoan Partnership > by email. HomeLoan Partnership is a trading name of H L Partnership Limited, > registered in England and Wales with Registration Number 5011722. Registered > office: 26-34 Old Street, London, EC1V 9QQ. H L Partnership Limited is > authorised and regulated by the Financial Services Authority. >> >> _______________________________________________ >> List: Catalyst@lists.scsys.co.uk >> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst >> Searchable archive: >> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ >> Dev site: http://dev.catalyst.perl.org/ > > > _______________________________________________ > List: Catalyst@lists.scsys.co.uk > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst > Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ > Dev site: http://dev.catalyst.perl.org/ > This Email and any attachments contain confidential information and is > intended solely for the individual to whom it is addressed. If this Email has > been misdirected, please notify the author as soon as possible. If you are > not the intended recipient you must not disclose, distribute, copy, print or > rely on any of the information contained, and all copies must be deleted > immediately. Whilst we take reasonable steps to try to identify any software > viruses, any attachments to this e-mail may nevertheless contain viruses, > which our anti-virus software has failed to identify. You should therefore > carry out your own anti-virus checks before opening any documents. HomeLoan > Partnership will not accept any liability for damage caused by computer > viruses emanating from any attachment or other document supplied with this > e-mail. HomeLoan Partnership reserves the right to monitor and archive all > e-mail communications through its network. No representative or employee of > HomeLoan Partn ership ha s the authority to enter into any contract on behalf of HomeLoan Partnership by email. HomeLoan Partnership is a trading name of H L Partnership Limited, registered in England and Wales with Registration Number 5011722. Registered office: 26-34 Old Street, London, EC1V 9QQ. H L Partnership Limited is authorised and regulated by the Financial Services Authority. > > _______________________________________________ > List: Catalyst@lists.scsys.co.uk > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst > Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ > Dev site: http://dev.catalyst.perl.org/ _______________________________________________ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/