That "shipping" problem you describe is not at all Perl specific.
I wholeheartedly agree, Abigail. And I would
further submit that this issue is not confined to Open
Source softare either. Such issues also occur with
closed source or commercial softwere where the vendor
is dependant you your having third party software installed
as well as their own. For instance code that is dependant
on one version or another of the
Sun JDK such as for
Java servlet engines.
The fix is language agnostic: just ship everything you need.
Which for some most cases works just fine.
To make matters worse are compatability issues you can
run into. For instance I remember a commercial package that
would only work with an very ancient version
of Perl. And it expected that version to be in
/usr/bin/perl. If it had been scripts only that were
the issue I could have munged that, but NO! they had
embed it in there C code as something like
exec ("/usr/bin/perl",@ARGS);
to kick off their scripts.
Thankfully their product was replaced by someone else's
product...