#!/usr/bin/perl -w $seller_state = "CA"; $token = "##ticket_price##"; $rule = "if(##seller_state## eq 'CA'){ ##ticket_price## = 2; }"; token_clean($rule); eval $rule; warn $@ if $@; $test_var = token_clean($token); print "$test_var\n"; #doesnt work print "$ticket_price\n"; #work sub token_clean(){ $_[0] =~ s/##(.+?)##/\$$1/g; return($_[0]); }