Postgresql perl : "NOTICE: elseif should be elsif at line ..."
I can't reproduce your error, it works fine on my PostgreSQL 9.5 on Linux. What version and platform are you running?

Note that your function can be exploited really badly, e.g.

select hds_updatewebservers_products('1; rm -rf /')


Why are you using elseif? Why not just else? See perl's documentation on elseif

Finally, you can simply (and elegantly):

CREATE FUNCTION hds_updatewebservers_products(character varying) RETURNS boolean AS $_$
  my $product_ref = @_[0]; # Launch update

  $product_ref =~ /^\w$/ or die 'Invalid product ref!'; # added for safety

  $checkexitcode = system ("sudo -u dbliveud /home/dbliveud/scripts/maj/launch-all.sh " . $product_ref . " ");

  # positive value means error while updating, otherwise update done OK
  return !($checkexitcode &gt; 0);
$_$ LANGUAGE plperlu STRICT;