Saturday, 11 May 2019

Cross-training to grow your Perl team

Expanding a company’s Perl operations can be a headache for HR and tech teams alike. Hiring more staff is not always an option and even when it is, finding a Perl developer to walk straight into a new role is hard. A more viable approach for many companies is to offer cross-training into Perl for staff already employed. The problem is that while your developer is cross-training, there’s work which they aren’t doing. Geekuni has been working closely with companies for several years and we’ve gained valuable insights into what works and what doesn’t. The good news is that you can in fact facilitate the smooth running of existing operations while seamlessly growing your Perl talent through cross-training. Here’s what you need to know.

Sunday, 14 October 2018

Growing your Perl Team - BoF

Expanding the dev team is a challenge every successful Perl shop has to face. At the most recent Perl conference I ran a “Birds of Feather” (BoF) where representatives of over a dozen companies and community groups came together to exchange their experience of what works, what doesn’t and general principles which emerged from these discussions. This is a summary of what came from this meeting.

Tuesday, 30 January 2018

The challenge of recruiting Perl developers

Many employers have a real challenge increasing the size of their Perl team. First we’ll work out the reasons recruitment is so difficult for a Perl team, and then we’ll bounce around some ideas on how to overcome these obstacles.

Sunday, 17 December 2017

Saturday, 28 October 2017

Perl course in London

On Saturday November 25, 2017 I'll be running a 2 hour Introduction to Perl for developers of other languages

Please make sure you register so that I can set you up with a free 2 week enrolment at Geekuni.


Cavendish Campus, University of Westminster
115 New Cavendish Street London W1W 6UW

Perl string concatenation and repetition

One of the first Perl operators to learn is the "dot" concatenation operator (.) for strings. For example:

my $string = 'foo' . 'bar';
# $string is 'foobar'.

On the other hand, if you have an array of strings @arr, then you can concatenate them by joining them with an empty string in-between:
my $string = join('', @arr);
But what if you just want 10 "foo"s in a line? You might try the Python approach with 'foo' * 10 but Perl with its type conversion on the fly will try to convert 'foo' into a number and say something like:
 Argument "foo" isn't numeric in multiplication (*) at...

Instead you should use the repetition operator (x) which takes a string on the left and a number on the right:

my $string = 'foo' x 10;
and $string is then
Note that even if you have integers on both sides, the 'x' repetition operator will cast the left operand into a string so that:

my $str = 20 x 10;
# $str is "2020202020202020202020"

Now this isn't all the repetition operator is good for - it can also be used for repetition of lists. For example:
('x','y','z') x 10

evaluates as:

('x','y','z','x','y','z','x','y', ...)

But be warned: if the left operand is not enclosed in parentheses it is treated as a scalar.
my @arr = ('x', 'y', 'z');
my @bar =  @arr  x 10;

is equivalent to
my @bar = scalar(@arr) x 10;
# @bar is an array of a single integer (3333333333)
while, turning the array into a list of its elements by enclosing it in parentheses:

my @foo = (  (@arr)  x 10 );
# then @foo is ('x','y','z','x','y','z','x','y', ...)

In summary, if you remember that 'x' is different to '*' and lists are treated differently to scalars, it's less likely your code will give you an unpleasant surprise!

Saturday, 16 April 2016

Interview - Perl’s Pumpking Ricardo Signes

Perl’s pumpking is the person who manages the core Perl 5 language. Having worn that mantle for almost five years, Ricardo Signes (rjbs) has set the next major release to mark the end of his reign. Over this period Perl has moved forward in leaps and bounds in terms of features, stability and popularity. I’ve taken Signes’ reflective mood as an opportunity to understand the person and processes behind Perl’s golden age.