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

http://act.yapc.eu/lpw2017/talk/7224

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

Where?

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

https://www.westminster.ac.uk/about-us/visit-us/directions/cavendish

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
foofoofoofoofoofoofoofoofoofoo
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.





Sunday, 6 March 2016

The Perl flip-flop operator

Have you ever wondered where fashion and software development overlap? If so, look no further than the flip-flop. It's a feature available in Sed, Awk, Ruby and Perl which - akin to its namesake - is short, revealing and can raise a few eyebrows.
Robot Gear flip-flops by Cafepress