Usually, when I want to prepend, I just change the order of operations into an append. Instead of:
$script = 'foo.pl';
# or $script = <STDIN>; chomp $script;
$path = '/some/path/';
$script = $path . $script;
$script = '/some/path';
$script .= 'foo.pl';
# or $script .= <STDIN>; chomp $script;
Often, I find that this actually makes more sense in my head because I'm building my string from left to right, which is how I think of the string.
Alternatives is to build the string from pieces using sprintf or join. And, in my particular example, an option would be to use the join-like File::Spec.