I saw semi::semicolons, so I figured the rest of the language could be changed some how as well?
Semi::Semicolons take a non-Perl program, translates it to Perl, then runs that. Feel free to create your own programming language and translator just like Semi::Semicolons did. Then, all you need is this:
package MyLang;
use Filter::Simple;
sub translate {
my $mylang_code = shift;
...
return $perl_code;
}
FILTER { $_ = translate($_) }
1
Note that ref[foo] already means something in Perl. (It means the same thing as ref( [ foo() ] ).) So you're new language is going to have to change that too.