Perl: Как сделать требование к 64-битному компилятору perl обязательным для запуска программы - PullRequest
0 голосов
/ 27 ноября 2018



Мне интересно знать, есть ли способ заставить программу выполняться только в x64-битном компиляторе perl.Если программа запускается в 32-битном компиляторе, она должна выдать ошибку и выйти.

Что-то похожее на require 5.10.0.

У меня есть программа, которая имеет много 64-битную целочисленную обработкусделать.Все они в строковом формате и hex "0xXXXXXXXXXXXXXXXX" не обрабатывается 32-битным компилятором (слышал, что где-то поддерживается только до 53 бит).Я знаю, что мы можем использовать Math::BigInt, но я пытаюсь исключить использование библиотек, так как скрипт будет работать в других системах, которые могут не иметь этой библиотеки.

1 Ответ

0 голосов
/ 27 ноября 2018

Несмотря на все разговоры о компиляторах, похоже, что вы действительно хотите проверить, что целые числа Perl имеют (как минимум) 64-битный размер.Для этого вы можете использовать следующее:

use Config qw( %Config );

BEGIN { die("64-bit ints required.\n") if $Config{ivsize} < 8; }

или

BEGIN { die("64-bit ints required.\n") if length(pack('j', 0)) < 8; }

или

BEGIN { die("64-bit ints required.\n") if ~0 <= 0xFFFF_FFFF; }

Я поместил чек в блок BEGIN, чтобы выне возникает проблем, если в вашей программе большие константы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...