in reply to I need to export variable as another user

You have been already told to use %ENV to work with these variables. Try something like this:

if (fork == 0) { # create a subprocess $ENV{myvariablename} = "desired variable value"; # set the variable ... exec("/path/to/program","some","program","arguments"); # run the program }

If you need to write shell commands, just run a shell and write your shell commands into it:

open my $shell, "|/bin/sh" || die "$!\n"; print $shell "export var=value\n"; ... print $shell "some complicated shell command # ;(){:|:&};:\n"; print $shell "/run/the/program --with-args\n";
Or use multi-line system(), for example, with here-doc:
system <<"END"; export var=value ... some() {shell commands} /run/some/program END

Sorry if my advice was wrong.