Internationalization and localization tools


Locale-Sensitive Perl Method

system $program, @args;
system ('foo') or print STDERR "couldn't system foo: $!";

Internationalization (I18n) Method Overview

The system function attempts to execute the system command specified in the argument. Arguments to the to be executed command may also be specified.

See perl's system function documentation and perlunicode for additional details.

I18n Issues

Perl does attempt to resolve Unicode text input to the system function. The input is instead provided as bytestrings. The proper encoding for strings passed to this function may be dependent on the operating and file system(s). For example, Unicode may or may not be allowed in file names. And the exact Unicode encoding may differ on different platforms ('UTF-8', 'UTF-16 Big Endian', etc.).

Whether system constitutes an i18n issue will depend on its usage in the application, and what architecture it can be expected to run on.

Suggested Replacement

Use care when providing byte-strings to system. Double check that the provided argument(s) will be tuned for the correct system architecture and encoding.

Globalyzer will detect this function and report it as an i18n issue. If you have determined that the call is being handled correctly, you can use Globalyzer's Ignore Comment functionality to ensure that it isn't picked up in a subsequent scan.



Locale-Sensitive Perl Methods

 

Lingoport internationalization and localization services and software