in reply to Can a perl program always be architecture-independent?

I don't think you're asking about platform dependence in the usual way. When you talk about moving between different OS platforms (e.g. Windows to Linux or vice-versa), Perl can be platform-independent, if the developer chooses not to use platform-specific code.

But, it appears you're talking about using the same OS (Fedora) on different hardware. The answer is simple: Perl scripts are interpreted, so as long as the interpreter works on that hardware, your script will too. Module use shouldn't even be affected, though XS modules may have to be compiled for that architecture.

In short, Perl scripts are architecture-independent (so long as there is a working interpreter) by default, but are platform-independent through careful programming. (architecture is the hardware, platform is the OS and related components).

radiantmatrix
require General::Disclaimer;
s//2fde04abe76c036c9074586c1/; while(m/(.)/g){print substr(' ,JPacehklnorstu',hex($1),1)}

  • Comment on Re: Can a perl program always be architecture-independent?

Replies are listed 'Best First'.
Re^2: Can a perl program always be architecture-independent?
by ghenry (Vicar) on Apr 12, 2005 at 20:08 UTC

    Yes, sorry. The same OS, but on different hardware.

    "The answer is simple: Perl scripts are interpreted, so as long as the interpreter works on that hardware, your script will too."

    As long as that version of Perl, supports the features used in that script, yes.

    But in my situation, it will be the same Perl core, just different hardware, so you are right. Thanks.

    Walking the road to enlightenment... I found a penguin and a camel on the way.....
    Fancy a yourname@perl.me.uk? Just ask!!!
Re^2: Can a perl program always be architecture-independent?
by sfink (Deacon) on Apr 13, 2005 at 07:44 UTC
    The only Perl modules that shouldn't be architecture-independent for the purpose of RPM are ones that use XS. But it's pretty clear from how the question was asked that there's no XS involved here. Your script could depend on modules that use XS, and hence are architecture-specific, but that's no reason to make your script architecture-specific unless you bundle those modules with your script's distribution.

    Labelling those dependencies is another problem. It seems like older perl RPMs provided things like "XML::Simple" or maybe it was "perl-XML-Simple". Newer ones now seem to instead provide "perl(XML::Simple)".