THANK GOT I didn't have to do this!!!
Thanks to 'our'!! and the perl team
#!/usr/local/bin/perl -w
{
local $/ = undef;
my $globals = <DATA>;
map{s/.//; $globals{$_}++} split "\n",$globals;
}
#my $a = '$gui';
#$a =~ /([\%\@\$])(\w+)/ and print "match!";
#die;
$text = <<'TEST';
my $var = 'abc';
$::Var = 'def';
$VAR = 'hij';
TEST
use IO::All;
my $source = shift;
my $text = io($source)->all;
foreach my $id(keys %globals){
$text =~ s/(?<!my |ur )([\$\%\@])($id)/$1::$id/g;
}
print $text;
=comment
my ($sigil, $id) = ($1, $2);
# $text =~ s/(?<!::)$id/::$id/g if globals{$id} or $sigil eq '&';
$text =~ s/$id/::$id/g if globals{$id} or $sigil eq '&';
print $text;
}
}
#/([\$\%\@&])($id)/$1::$id/g;
while (<DATA>){
/^\s*$/ and next;
/([\$\%\@])(\w+)/ or die "illegal variable name: $_";
my ($sigil, $id) = ($1, $2);
#print "found $sigil $id\n";
=cut
__DATA__
$gui
$mixname
$yamlfile
%state_c_ops
$effects_cache_file
$mw
$ew
$canvas
$ecasound
$grammar
@ecmd_commands
%ecmd_commands
$ecmd_home
$wav_dir
$input_channels
$config
%devices
%opts
%oid_status
$clock_id
$use_monitor_version_for_mixdown
$select_track
@format_fields
$session
$session_name
$mix_dir
$cop_id
$i
$t
%state_c
%state_t
$statestore
$chain_setup_file
@monitor
@record
@mute
%track_names
@effects
%effect_i
@ladspa_sorted
%effects_ladspa
$e
$last_version
$monitor_version
%cops
%copp
%e_bound
@marks
$unit
$markers_armed
%old_vol
$length
$jack_on
@all_chains
@input_chains
@output_chains
%take
@takes
%alias
%chain
%subst
%cfg
$tkeca_effects_data
$yaml
$load_frame
$add_frame
$take_frame
$time_frame
$clock_frame
$oid_frame
$track_frame
$effect_frame
$iam_frame
$perl_eval_frame
$transport_frame
@widget_t
%widget_c
%widget_e
@widget_o
%widget_o
@global_version_buttons
@time_marks
$time_step
$clock
$setup_length
$session_label
$take_label
$sn_label
$sn_text
$sn_load
$sn_load_nostate
$sn_new
$sn_quit
$iam_label
$iam_text
$iam_execute
$iam_error
$build_track_label
$build_track_text
$build_track_add
$build_track_rec_label
$build_track_rec_text
$build_track_mon_label
$build_track_mon_text
$build_new_take
$transport_label
$transport_setup_and_connect
$transport_setup
$transport_connect
$transport_disconnect
$transport_new
$transport_start
$transport_stop
$tkcmd
$iam
$old_bg
$loopa
$loopb
$mixchain
$mixchain_aux
@oids
%inputs
%outputs
%post_input
%pre_output
$ladspa_sample_rate
$statestore
$chain_setup_file
$track_name
$ch_r
$ch_m
$effects_data_vars
%L
%M
$persistent_vars
$effects_state
VARS