Way back in 2001, London.pm organised a series of tshirts. As Dave Cross explained:
They all have a large "Programming Republic of London" logo on the back and one of a series of small "fictional" PM group logos on the front. I'm currently wearing my Sunnydale.pm shirt, but we also have Rivendell.pm, Tatooine.pm, ZZ9PluralZAlpha.pm[1] and Anhk-Morpork.pm (the last is for those strange people who can't see that Terry Pratchett is an unfunny, fifth-rate Douglas Adams wannabe).
Also, see the images as Simon Wistow explains:
Yes, the rumours are true. After epic battles with every t-shirt printer in london the official Winter Season London.pm t-shirts are finally ready.
Embarassingly we left out our favourite fictional Perl Monger group. However, it was, how shall I say, quite a lot of organising and quite tiring to ship tshirts around London and the world. Luckily, now we live in the future and I can outsource all that, so behold the official London.pm Gallifrey.pm tshirt.
It's being sold at cost and you can wear one at all fashionable geek gatherings. Enjoy!
Update: now with a women's tshirt and also available in the USA: men's, women's.
YAPC::Europe 2009 will be held in Lisbon from the 3rd to the 5th August. I will be presenting a new talk entitled Fewer cables. As Leader of London.pm, I will be travelling on Sun 2nd August at 18:15 on TAP Portugal 357 from Heathrow to Lisbon, staying at the Hotel Alif, and travelling back at 18:35 on Sun 9th August on TAP Portugal 358 from Lisbon to Heathrow. You may join me if you wish. The wiki has useful pages about accommodation, who is staying where, air arrivals, air departures and details about the TAP discount. See you in Lisbon!
It can interesting to see what files your Perl loads. One way to do this is to use the Linux::Inotify2 module which uses inotify to monitor file changes. Something like:
#!/home/acme/bin/perl
use strict;
use warnings;
use Linux::Inotify2;
use File::Find::Rule;
use Perl6::Say;
my $inotify = new Linux::Inotify2
or die "Unable to create new inotify object: $!";
foreach my $inc (@INC) {
next if $inc eq '.';
foreach my $directory ( File::Find::Rule->new->directory->in($inc) ) {
$inotify->watch( $directory, IN_ACCESS )
or die "watch creation failed";
}
}
while () {
my @events = $inotify->read;
unless ( @events > 0 ) {
print "read error: $!";
last;
}
foreach my $event (@events) {
say $event->fullname if $event->IN_ACCESS;
}
}
Which outputs something along the lines of the following if you load Moose by running perl -e 'use Moose' in another terminal:
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose.pm
/home/acme/perl-5.10.0/lib/5.10.0/strict.pm
/home/acme/perl-5.10.0/lib/5.10.0/warnings.pm
/home/acme/perl-5.10.0/lib/5.10.0/warnings.pm
/home/acme/perl-5.10.0/lib/5.10.0/warnings.pm
/home/acme/perl-5.10.0/lib/5.10.0/warnings.pm
/home/acme/perl-5.10.0/lib/5.10.0/i686-linux/Scalar/Util.pm
/home/acme/perl-5.10.0/lib/5.10.0/vars.pm
/home/acme/perl-5.10.0/lib/5.10.0/warnings/register.pm
/home/acme/perl-5.10.0/lib/5.10.0/Exporter.pm
/home/acme/perl-5.10.0/lib/5.10.0/i686-linux/List/Util.pm
/home/acme/perl-5.10.0/lib/5.10.0/i686-linux/XSLoader.pm
/home/acme/perl-5.10.0/lib/5.10.0/i686-linux/auto/List/Util/Util.so
/home/acme/perl-5.10.0/lib/5.10.0/Carp.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Exporter.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/MRO/Compat.pm
/home/acme/perl-5.10.0/lib/5.10.0/mro.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/MRO/Compat.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/MRO/Compat.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Devel/GlobalDestruction.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/auto/Devel/GlobalDestruction/GlobalDestruction.so
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Sub/Exporter.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Data/OptList.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Params/Util.pm
/home/acme/perl-5.10.0/lib/5.10.0/overload.pm
/home/acme/perl-5.10.0/lib/5.10.0/overload.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Params/Util.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Params/Util.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Sub/Install.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Sub/Install.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Sub/Install.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Data/OptList.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Sub/Exporter.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Sub/Exporter.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Sub/Exporter.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Sub/Exporter.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Sub/Exporter.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Sub/Exporter.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Sub/Exporter.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Sub/Exporter.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Sub/Name.pm
/home/acme/perl-5.10.0/lib/5.10.0/base.pm
/home/acme/perl-5.10.0/lib/5.10.0/base.pm
/home/acme/perl-5.10.0/lib/5.10.0/i686-linux/DynaLoader.pm
/home/acme/perl-5.10.0/lib/5.10.0/i686-linux/Config.pm
/home/acme/perl-5.10.0/lib/5.10.0/i686-linux/DynaLoader.pm
/home/acme/perl-5.10.0/lib/5.10.0/AutoLoader.pm
/home/acme/perl-5.10.0/lib/5.10.0/AutoLoader.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/auto/Sub/Name/Name.so
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Immutable.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Method/Constructor.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Method/Generated.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Method.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Object.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Method/Constructor.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Immutable.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Immutable.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Instance.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Instance.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Method/Wrapped.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Method/Wrapped.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Module.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Package.pm
/home/acme/perl-5.10.0/lib/5.10.0/i686-linux/B.pm
/home/acme/perl-5.10.0/lib/5.10.0/i686-linux/B.pm
/home/acme/perl-5.10.0/lib/5.10.0/i686-linux/auto/B/B.so
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Package.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Attribute.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Method/Accessor.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Method/Accessor.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Attribute.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Attribute.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP/Attribute.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/Class/MOP.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/auto/Class/MOP/MOP.so
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/List/MoreUtils.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/List/MoreUtils.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/auto/List/MoreUtils/MoreUtils.so
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Util/MetaRole.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Exporter.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Exporter.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Method/Overridden.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Method.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Method/Augmented.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Error/Default.pm
/home/acme/perl-5.10.0/lib/5.10.0/Carp/Heavy.pm
/home/acme/perl-5.10.0/lib/5.10.0/Carp/Heavy.pm
/home/acme/perl-5.10.0/lib/5.10.0/Carp/Heavy.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Method/Constructor.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Method/Constructor.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Method/Constructor.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Method/Constructor.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Method/Destructor.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/TypeConstraint.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/i686-linux/metaclass.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/TypeConstraint.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/TypeCoercion.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Attribute.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Method/Accessor.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Method/Accessor.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Method/Accessor.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Method/Delegation.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Util.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Util.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Util/TypeConstraints.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/TypeConstraint/Union.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/TypeCoercion/Union.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/TypeConstraint/Parameterized.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/TypeConstraint/Parameterizable.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/TypeConstraint/Class.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/TypeConstraint/Role.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/TypeConstraint/Enum.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/TypeConstraint/Registry.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Util/TypeConstraints/OptimizedConstraints.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Util/TypeConstraints.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Util/TypeConstraints.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Util/TypeConstraints.pm
/home/acme/perl-5.10.0/lib/5.10.0/i686-linux/re.pm
/home/acme/perl-5.10.0/lib/5.10.0/i686-linux/re.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Util/TypeConstraints.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Util/TypeConstraints.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Attribute.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Attribute.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Attribute.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Attribute.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Attribute.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Instance.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Object.pm
/home/acme/perl-5.10.0/lib/5.10.0/if.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role/Method.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role/Method/Required.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role/Composite.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role/Application.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role/Application/RoleSummation.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role/Application/RoleSummation.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role/Application/ToClass.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role/Application/ToClass.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role/Application/ToRole.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role/Application/ToRole.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose/Meta/Role/Application/ToInstance.pm
/home/acme/perl-5.10.0/lib/site_perl/5.10.0/Moose.pm
No, I'm not sure why it's accessing some files multiple times. Now, who can change this into a CPAN module popularity contest?