Host introspection: Difference between revisions

Content added Content deleted
(J: clean up sleepy mistake)
(→‎{{header|Perl}}: Switch from 'intsize' to 'uvsize', because 'byteorder' reports the byte order in a UV, and I want the size to match the byte order.)
Line 471: Line 471:
Most basic example:
Most basic example:
<lang perl>use Config;
<lang perl>use Config;
print "int size: $Config{intsize}, byte order: $Config{byteorder}\n";</lang>
print "UV size: $Config{uvsize}, byte order: $Config{byteorder}\n";</lang>
Example output:
Example output:
<pre>
<pre>
int size: 4, byte order: 1234
UV size: 4, byte order: 1234
</pre>
</pre>


Line 480: Line 480:
<lang perl>use 5.010;
<lang perl>use 5.010;
use Config;
use Config;
my ($size, $order, $end) = @Config{qw(intsize byteorder)};
my ($size, $order, $end) = @Config{qw(uvsize byteorder)};
given ($order) {
given ($order) {
when (join '', sort split '') { $end = 'little' }
when (join '', sort split '') { $end = 'little' }
Line 486: Line 486:
default { $end = 'mixed' }
default { $end = 'mixed' }
}
}
say "int size: $size, byte order: $order ($end-endian)";</lang>
say "UV size: $size, byte order: $order ($end-endian)";</lang>
Example outputs:
Example outputs:
<pre>
<pre>
int size: 4, byte order: 1234 (little-endian)
UV size: 4, byte order: 1234 (little-endian)
</pre>
</pre>
<pre>
<pre>
int size: 4, byte order: 3412 (mixed-endian)
UV size: 4, byte order: 3412 (mixed-endian)
</pre>
</pre>
<pre>
<pre>
int size: 8, byte order: 87654321 (big-endian)
UV size: 8, byte order: 87654321 (big-endian)
</pre>
</pre>