Tu avais raison, c'est bien le signe =~ et non ~=
Tu as 3 gros types de variables différentes :
$ pour scalar ($calar) : variable contenant 1 valeur qui peut être un entier, un flotant, un caractère, une chaine, ce que tu veux. On s'en sert également pour pointer sur une autre variable (par référence).
@ pour array (@rray) : liste de variables ou encore tableau. les variables contenues dans @ étant des scalaires, donc des $, lorsque tu veux parler de la 1ère variable de ton tableau @pouet, tu feras $pouet[0].
% pour hachage (ou hash) : c'est un peu comme une base de données, d'un côté un champ (clé) et de l'autre le contenu du champ (valeur). Pour simplifier, c'est un peu comme une structure en C si tu vois le genre.
---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO