kill9/harmful/software/perl.md

1.7 KiB

Perl has shitty stuff

Perl functions fucking sucks

sub pile_of_crap
{
	my $x = shift; # $x is 3 if pile\_of\_crap(3)
	# do something with $x
}

Why can't it be normal?

>inb4 bash

sub pile_of_crap(my $x)
{
	# do shit with $x;
}

$ @ % &

Those symbols (altough they aren't confusing) are useless: for example

remember this:

  • $: Scalars, numbers or strings (or references)
  • @: Arrays
  • %: Hashes, associative arrays
my @array = qw(hello this is an array);

# How would you print the first element? print @array[0]? haha!

print $array[0]; # prints hello

That's right! you converted from an array to a scalar (it makes sense though, but it's VERY confusing)

same thing with hashes:

my %hash = qw(qorg asshole lain cute_hacker);

print $hash{qorg} # prints asshole

Again, that's right! you converted a motherfucking associative array into a fucking scalar (again, makes a lot of sense when you think about it, you're getting only a string, but it can be VERY confusing)

There is more than one way to do it

And that's based tbh

Before, i defined an array and a hash using qw, because its a lot easier than do this:

my @array = ('hello','this','is','an','array');

That's the most common way to define an array. But you can also fucking do:

my @array;
$array[0] = "hello";
$array[1] = "this";
$array[2] = "is";
$array[3] = "an";
$array[4] = "array";
$array[1312312312] = "wtf"; # from 5 to 1312312312, contents are NULL.

use strict

really? it should be enabled by default. it shold be use unstrict instead

perl's logo is an onion

visiting code you wrote some weeks ago will make you cry.

But it is, still, the greatest programming language the world has ever known.