Hallo Thomas,
Wenn ich es richtig verstehe, hätte ich dann das my weglassen können, ohne dass sich etwas ändert?
Ich kenne ja Dein Script nicht, aber die Warnung deutet darauf hin, dass Du zweimal eine mit dem gleichen Namen deklarieren wolltest (sie sagt aus, dass Du es hast, was darauf hindeutet, dass Du es wolltest ;-)
Wenn Du nun einfach das my weg lässt, gibt es keine Warnung mehr, aber vermutlich ist Dein Programm falsch, weil Du wahrscheinlich zwei Variablen haben wolltest. Du solltest also angucken, was da passiert und dann den Fehler beheben.
Die beste Übersetzung von "mask" wäre in diesem Kontext wohl "verdeckt".
Die alte Variable ist nicht einfach weg, man kann sie nur nicht mehr direkt sehen. Dass es sie noch gibt, kann man z.B. durch Closures oder auch Referenzen erkennen.
Hier ein Beispiel mit Closure:
perl -we 'my $a = 1; my $f = sub {return $a}; my $a = 2; print $a, $f->(), "\n";'
Ausgabe: 2 1
Grüße
Daniel