Category: APIs


If you’re getting the “Can’t locate Catalyst/Engine/HTTP/Restarter.pm” error message, it is very likely you’re running a recent version of Catalyst:

jason@catalyst:~/catalyst-book-code/Chapter_3/LolCatalyst-Lite$ script/lolcatalyst_lite_server.pl -r
Can‘t locate Catalyst/Engine/HTTP/Restarter.pm in @INC (@INC contains: /home/jason/catalyst-book-code/Chapter_3/LolCatalyst-Lite/script/../lib /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .). at /usr/lib/perl5/Class/MOP.pm line 116
        Class::MOP::load_first_existing_class(‘
Catalyst::Engine::HTTP::Restarter‘) called at /usr/lib/perl5/Class/MOP.pm line 121
        Class::MOP::load_class(‘
Catalyst::Engine::HTTP::Restarter‘) called at /usr/share/perl5/Catalyst.pm line 2634
        Catalyst::setup_engine(‘
LolCatalyst::Lite‘, undef) called at /usr/share/perl5/Catalyst.pm line 1081
        Catalyst::setup(‘
LolCatalyst::Lite‘) called at /home/jason/catalyst-book-code/Chapter_3/LolCatalyst-Lite/script/../lib/LolCatalyst/Lite.pm line 34
        require LolCatalyst/Lite.pm called at script/lolcatalyst_lite_server.pl line 55
Compilation failed in require at script/lolcatalyst_lite_server.pl line 55.

The problem is that Catalyst::Engine::HTTP::Restarter within Catalyst::Engine was replaced by Catalyst::Restarter within the Catalyst::Devel package. How to fix your application to use the updated development web server? Very easy. Rerun catalyst.pl with the “-scripts”, to rebuild just the scripts in the script directory, and “-force” to overwrite any files therein:

jason@catalyst:~/catalyst-book-code/Chapter_3$ catalyst.pl -scripts -force LolCatalyst::Lite
 exists "LolCatalyst-Lite/script/lolcatalyst_lite_cgi.pl"
created "LolCatalyst-Lite/script/lolcatalyst_lite_cgi.pl"
 exists "LolCatalyst-Lite/script/lolcatalyst_lite_fastcgi.pl"
created "LolCatalyst-Lite/script/lolcatalyst_lite_fastcgi.pl"
 exists "LolCatalyst-Lite/script/lolcatalyst_lite_server.pl"
created "LolCatalyst-Lite/script/lolcatalyst_lite_server.pl"
 exists "LolCatalyst-Lite/script/lolcatalyst_lite_test.pl"
created "LolCatalyst-Lite/script/lolcatalyst_lite_test.pl"
 exists "LolCatalyst-Lite/script/lolcatalyst_lite_create.pl"
created "LolCatalyst-Lite/script/lolcatalyst_lite_create.pl"

If you’re interested in learning the Catalyst Web Framework (Perl based), I highly recommend The Definitive Guide to Catalyst: Writing Extensible, Scalable and Maintainable Perl–Based Web Applications.

Assuming that you installed Sybase OpenClient 15.5 from the 15.5 PC Client:

Install ActiveState Perl from http://www.activestate.com (free) and install DBI if it isn’t already installed.  It should be but you never know…

  1. Start -> ActiveState Perl -> Perl Package Manager
  2. install DBI
  3. exit

Now, the easy part.  Install the DBD::Sybase 1.09.01 PPM:

  1. download DBD::Sybase 1.09.01 PPM
  2. extract zip file to temporary directory (e.g. c:\test)
  3. Start -> Run -> cmd.exe (as Administrator if Vista or Windows 7)
  4. cd \test
  5. ppm install DBD-Sybase.ppd
  6. exit

That’s it :)

It should automatically install the DBD::Sybase for Perl 5.8 or 5.10 depending on which version of Active State Perl you have installed.

Assuming that you installed Sybase OpenClient 15.5 from the 15.5 PC Client:

Install ActiveState Perl from http://www.activestate.com (free) and install DBI if it isn’t already installed.  It should be but you never know…

  1. Start -> ActiveState Perl -> Perl Package Manager
  2. install DBI
  3. exit

Now, the easy part.  Install the DBD::Sybase 1.09 PPM:

  1. download DBD::Sybase 1.09 PPM
  2. extract zip file to temporary directory (e.g. c:\test)
  3. Start -> Run -> cmd.exe (as Administrator if Vista or Windows 7)
  4. cd \test
  5. ppm install DBD-Sybase.ppd
  6. exit

That’s it :)

Sybase

Andy Bakun over at Ars Technica wrote an excellent “HowTo” on writing games with Perl and the Simple DirectMedia Library:

Developing games with Perl and SDL

ars technicaGet ready to dive into game development! Ars explores the art of SDL game programming with Perl. A dynamic, high-level scripting language and powerful open source SDL bindings make it possible to produce sophisticated games without a lot of effort or overhead.
By Andy Bakun | Last updated February 14, 2006 9:00 PM CT

What is SDL_perl?

SDL_Perl is a perl interface to the Simple DirectMedia Library. It is composed of a both a XS wrapper to the SDL libraries and a series of Perl modules that export SDL functionality in an object-oriented fashion.
One of the biggest benefits of using SDL is that it allows portable media applications to be written without having to be concerned with specific implmentations of media libraries for each target platform. Bringing Perl into the picture takes the portability one step further, allowing media-rich applications to be written in a high-level language that can be targeted to a number of platforms. While programming using SDL requires knowledge of C and access to a C compiler, using SDL_perl does not. This greatly decreases the amount of time it takes to get something up on the screen and working.

Read more

I just uploaded the Perl module Flickr::Simple2 version 0.03 to CPAN (PAUSE) so it might be a few minutes/hours before it shows up in the CPAN mirrors.

Revision history for Perl extension Flickr::Simple2.

0.03  Wed May 13 11:18:00 2009
- significant changes to the API to make more methods of the Flickr API available.
- using Iterator::Simple so we can retrieve one photo at a time and internalize the handling of Flickr Photo *pages*
0.02  Initial CPAN release
0.01  Thu Feb 12 11:33:35 2009
- original version; created by h2xs 1.23 with options
-XA -n Flickr::Simple2