dada's perl lab just



Next Site


Camel, Llama & Gecko images are trademarks of O'Reilly & Associates, Inc. Used with permission.

welcome to my lab! here you'll find some perl modules, scripts and CGIs I've created. please don't mail me with (too many ;-) questions or help requests; the preferred media for this, unless otherwise specified, is the Perl-Win32-Users mailing list provided by ActiveState™.

they're worldwide available from either my CPAN directory (source code) or the ActiveState Package Repository (precompiled binaries), but here you'll find the most up-to-date versions:
also note that I've started mantaining my own PPM repository!

© 1997..2003 Aldo Calpini.
[ PerlRing ] [ PerlRing Next ]
This PerlRing site is owned by
[ Next Page | Skip Next | List Next 5 | Random Link ]
Want to join the ring? Click here for info

Win32::GUI Back Top

Win32::GUI default icon ;-) Win32::GUI is a Win32-platform native graphical user interface toolkit for perl. basically, it's an XS implementation of most of the functions found in user32.dll and gdi32.dll, with an object oriented perl interface and an event-based dialog model that mimic the functionality of visual basic.

it was a big fun for me to put it up, hope it will be a fun for you too :-)

BIG NEWS: the project development is hosted on SourceForge. you can reach the project page by clicking on the logo below:

SourceForge Logo

SourceForge provides a CVS repository, an homepage, mailing lists, a bug tracking system and a lot of fancy stuff for us :-)
if you want to become an active developer, create an account on SourceForge, write me your login name, and I'll add you to the Developers team.

the module is actually in beta testing so be warned that syntax and behaviour can change with future builds; and of course, that there are many incomplete parts, sparse documentation (you can browse here the work in progress), and generally a lot of things to do.

there is a mailing list that you can use to ask question or give your contribution to the module; I follow the mailing list very closely (as always, time permitting...). to subscribe, goto: and follow the instruction on screen.

a searchable archive of past messages (from the mailing list) is available at:; the list and related stuff is kindly contributed by Joe Stewart.

this module is available on PPM for ActivePerl 5xx and higher (still old version 0.0.502, will be updated ASAP).


Win32::API Back Top

Win32::API is a perl extension to import and call functions from any 32-bit DLL (Dynamic Link Library); its main use is to perform "quick and dirty" calls to non otherwise implemented Win32 APIs or third-party or even homegrown DLLs.

the real "core" of the module is a very simple assembler trick, which is not even mine: I found it on an italian magazine in an article written by Andrea Frosini.

this simplicistic approach doesn't by any mean address any issue, and leave a lot of work on the programmers side; you have to pack() and unpack() data as C wants it, you have to know the structures you're using, and so on. it's not recommended to use Win32::API for complex tasks; think about writing an XS extension for that.

and first of all, check before if there's already an extension available that does what you want to accomplish (unless, of course, you're academically trying to accomplish it THIS way ;-).


Win32::Clipboard Back Top

this module lets you interact with the Windows clipboard; currently supported features are:
  • getting clipboard content, either as text, bitmap file or list of files (eg. from an explorer-like cut'n'paste operations)
  • setting clipboard content (as text only)
  • emptying the clipboard
  • monitoring the clipboard (wait for a change)

this module is available on PPM for ActivePerl 5xx and higher.


dada's PPM Repository Back Top

the repository is located at; actually it contains the following modules:
  • Win32::GUI 0.0.502
  • Win32::API 0.20
  • Win32::Clipboard 0.51
they're precompiled for 5.005 MSWin32-x86-object (ActivePerl 5xx) and 5.6 MSWin32-x86-multi-thread (ActivePerl 6xx); to install from there simply type:

ppm install --location= modulename

you can also add my repository permanently to your current set, so that PPM will be able to download from there:

$ ppm
PPM interactive shell (1.1.1) - type 'help' for available commands.
PPM> set repository dada
PPM> set save
PPM> quit


the end