perl -se "use strict; use warnings;BEGIN{print qq(inside BEGIN \@ARGV is [@ARGV]\n)}my $test='originalvalue';print qq(inside main \@ARGV is [@ARGV] and \$test is [$test]\n);" -- -test=SET_VIA_-s arg1 inside BEGIN @ARGV is [arg1] inside main @ARGV is [arg1] and $test is [original value]