Schlechter Syntax Highlighter.
Das liegt daran das "y" ein weg ist wie du einzelne Zeichen ersetzen kannst.
$variable =~ y/abc/xyz/;
Das würde halt das zeichen "a" in $variable duch "x" ersetzen, "b" nach "y" oder "c" nach "z". Der erste buchstabe nach dem "y" ist der begrenzer. Den kann man bei Perl 5 wählen.
In deinem Beispiel steht ja "-y=>140..." daher nimmt er das "y" als beginn des ganzen, und das gleichzeitzeichen als trenner, er sucht also nach soetwas "y=...=...=", wenn du dadrauf achtest dann coloriert er das bei dir auch immer bis zum nächsten vorkommen des dritten gleichheitszeichen ein.
In diesem Beispiel ist das aber nicht der y/// Befehl da du "-y ⇒ 140" schreibst. Und der "⇒" Operator nimmt das was davor steht und das wird als string interpretiert. Das ist halt dafür gedacht um Hashes leichter/schöner/übersichtlicher zu definieren.
my %person = (
name => 'raab',
vorname => 'david',
);
Anscheind ignoriert gedit den "⇒" Operator. Oder ich würde es wenn du selber code schreibst auch mal testen ob nicht ein einfach hinzufügen von einem leerzeichen vor und nach dem "⇒" das Problem schon löst. Das würde ich sowieso machen da es übersichtlicher und leichter zu lesen ist. zusammengequetsch sind die argumente schlechter erkennbar, in der regel macht man ja auch
funktion($foo, $bar, $baz);
anstatt
funkion($foo,$bar,$baz);
und im deutschen fügt man hinter einem Komma oder Punkt auch immer ein Leerzeichen ein um die lesbarkeit zu erhöhen. Ansonsten ist "Scite" auch ein netter Editor der Perl 5 recht gut Parsen kann (Perl 5 ist schwer zu parsen).
Ansonsten kannst du auch mal Padre ausprobieren.
http://padre.perlide.org/trac/