Way OT: James Mickens - The Funniest Person in Computer Science?

Read The Night Watch and tell me that I'm wrong...

(The syntactically-correct Perl script mentioned in the article is indeed syntactically-correct. (Extra points if you can tell me what it does.))

mop problem 1 - mop can't have protected attribute variable

mop can't have protected attribute variable. All attribute variable is private in the class.

use mop;

class Point {
  has $x; # private attribute variable
  has $y; # private attribute variable

class Point3D extends Point {
  method foo {
    # We can't access $x and $y.

If object is hash based object, this is resolved by the following way.

class Point {
   method init {
    $self->{_x} = 3;

class Point3D extends Point {
  method foo {
    my $x = $self->{_x};

hash based object can communicate super class and sub class.
but mop is inside-out object. this is impossible.
mop only allow private access via attribute variable or public access via accessor method.
this is not useful.

A Day Without Perl

Well back at my desk today and slowly reinstalling DWIM perl and padre after yesterdays lunch disaster so I took the time to snoop about on the enlightened perl or EPO site for a few mins.

Well still not much going on there since the last time I had a look about two years ago at least the send a newbie initiative seems to be humming along.

They still have the same dead link on the 'Join the organisation' on the home page that was there 2 years ago at least the 'Membership' nav tab on the right side goes to the right place now.

You wonder sometimes if anyone really cares anymore about it as most of the info on the site is rather dated (except the send a newbie), the twitter feed has been inactive for two years and there still are still no documents except the original on the Docs page and the wiki has been hijacked by a shady Belorussian trucking firm.

Let's delete 10,000 files from CPAN

This week, let's delete 10,000 (decimal) files from CPAN. Thanks to Ricardo, we're almost a tenth of the way there.


We're a month into spring and some of the world just celebrated Earth Day, so it's time for the thousands of PAUSE authors to each delete one old distribution (which is three files in your CPAN author directory). Visit your delete files PAUSE page to "increase the Schwartz". You can even clean up your directory with WWW:::PAUSE::CleanUpHomeDir or with App::PAUSE::cleanup.

It's not quite enough for you as the PAUSE author to delete your files. We want to get the word out, so I'd like you to get one other PAUSE author to do the same. Use your social media networks, peer pressure, begging, or whatever your favorite method is, not because there's any danger of running out of space, but because it's fun to delete things and see them disappear.

MetaCPAN Officially Welcomes Our OPfW and GSoC Participants

The MetaCPAN project would like officially to welcome our summer of 2014 Google Summer of Code (GSoC) and Outreach Program for Women (OPfW) participants. We had a lot of interest this time around and some great applications. Our OPfW participant is Pattawan Kaewduangdee and our GSoC student is Talina Shrotriya. Both Talina and Pattawan have plans to make some much needed improvements to MetaCPAN and we're really looking forward to working with them. I've linked to both of their Github profiles above in case you want to track their progress commit by commit.

I'd also like to thank the Perl Foundation for its support in both of these programs. Lately I've had a chance to glimpse how much work goes on behind the scenes to make these sorts of programs happen and I can tell you it's impressive to see how much volunteer work is involved in something like this.

Perl and Windows UAC

While doing some Registry-related things with Perl a couple of weeks ago, I ran into something that took me nearly a day to figure out: Win32::TieRegistry asks for write access to the Registry by default, and under Win7 that requires Administrator privileges. (I kid you not, it took me over a day to figure that out.)

Well, getting what turns out to be called "elevated privileges" from Perl turns out to have been pretty hard - a lot harder than it should have been, for reasons I went into in some detail in a little article about it, but, to cut straight to the chase, I came up with a way to get Perl to restart a script after invoking UAC to gain elevated privileges. It's got some weaknesses that are inherent to the way Windows manages the console, but, well, I present to you Win32::RunAsAdmin. You can use it like this:

   use Win32::RunAsAdmin qw(force);

That checks to see whether you're running with elevated privileges already, and if not, it calls the shell to run the same script again with the same arguments, and exits. Obviously, the (few) components of the module are also available separately; check the POD for details. But in all it's about ten lines.

Problem solved. Hope this helps somebody.

One for the Road

Well on the way home now and over lunch stop I discovered there was WiFi at the Tim Horten's so I took the opportunity to try and load in 'Padre::Plugin::Autodia' as it seemed like a good quick blog post while I am on the road as I had 'GraphViz' installed already it should go smoothly, right?

Well wrong.

Things started out fine then Padre started to recomile and after a half hour of wizing and whiring if failed.

I tried to start Padre but it never came up it was just dead. Even CPAN from a prompt would not come justs gives me this

Testing Lies Video

I was recently at the 2014 German Perl Workshop and I've written about it at our company blog.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is run by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.