我怎么知道我是在perl脚本中运行64位还是32位linux?

Lui*_*z-R 2 architecture linux perl

我不想直接访问shell(例如使用uname).我正在寻找一种快速检测架构的方法(只有当它是32或64位时),一旦我知道我在linux上.

fre*_*eit 6

您可能会问3个单独的问题:

请注意,没有一个神奇的"64位",有很多不同的东西可能意味着.

  1. 什么是硬件?- /proc/cpuinfo以难以解析的方式包含此信息.您基本上需要有一个表格来说明不同的CPU.我相信如果内核是64位的话,你会在"地址大小"中获得大于32的数字.
  2. 什么是OS /内核?- 我相信use POSIX;和检查(POSIX::uname())[4]是规范的答案,但是-d /lib64,-d /usr/lib64真实也是一个很好的指标.
  3. 这是一个64位的perl吗?- use Config;看看$Config{archname},$Config{myarchname},$Config{use64bitint},或配置匹配达到你所相信的"64位"是指其他一些变量.