#!/usr/bin/perl sub ar2list ($) { return @{ $_[0] }; } sub push_aref ($@) { CORE::push( @{+shift} , @_ ); } package XSigils; use Filter::Simple; FILTER { warn "\n\n\n --- Before Transformation: \n$_"; s{ push (\s|\() (\s*) €} {push_aref$1$2€}xg; s{ \@ \s* €} {ar2list €}xg; # 2array s{ €(\w+)\[ } {\$$1->\[}xg; # dereference s{ €(\w+) } {\$$1}xg; # simple scalar warn "\n\n\n --- After Transformation: \n$_"; warn "\n\n\n --- Code execution!\n"; }; 1; #### #!/usr/bin/perl use XSigils; $\="\n"; €arr=[1..3]; push €arr,4,5; print @€arr; #### --- Before Transformation: $\="\n"; €arr=[1..3]; push €arr,4,5; print @€arr; # (*) --- After Transformation: $\="\n"; $arr=[1..3]; push_aref $arr,4,5; print ar2list $arr; --- Code execution! 12345