#!/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";