#!/usr/bin/perl no warnings; use Filter::Simple; my $transform = sub { s{ X(\w+)\[ } {\$$1->\[}xg; s{ X(\w+) } {\$$1}xg; }; FILTER_ONLY "executable_no_comments" => $transform; while ($line=) {$_.=$line} if ($_) { print "\nbefore:\n",$_; &$transform; print "\nafter:\n", $_; print "\neval:\n"; eval $_; } __DATA__ Xarr=[1..3]; print "@Xarr"; #### before: Xarr=[1..3]; print "@Xarr"; after: $arr=[1..3]; print "@$arr"; eval: 1 2 3 #### Can't modify constant item in scalar assignment at /home/lanx/perl/sigil.pl line 29, near "];" Execution of /home/lanx/perl/sigil.pl aborted due to compilation errors.