获取数组的十六进制值

getting the hexvalue of an array

这是我的 perl 代码的 部分

    my $start= @list[0];
    my @Type=@list[1,2];
    my @ID =@list[6,5,4,3];
    my $date=@list[10,9,8,7];

十进制是我从一个二进制文件中读取数据填充的列表,我想按照他们推崇的格式将数据保存到输出文件中,@decimal for start and hex for @Type and @ID and yyy.mm.dd 对于 @date.

我已经调查过了,但我只能找到:

my $hex = sprintf("0x%X", $d);

我不能将其用于 Array necessarly。我也找不到很多关于 perl 中的日期和时间格式的信息。你能给我指出正确的方向吗?

map 函数可用于对数组的所有元素应用操作。

@hexType = map { sprintf("0x%x",$_) } @Type;
@hexID = map { sprintf("0x%x",$_) } @ID;

你说:

i have strict and warnings in the beginning

但这里有一个简单的代码测试版本:

#!/usr/bin/perl

use strict; use warnings;

my @list = (1 .. 10);

my $start= @list[0];
my @Type=(@list[1], @list[2]);
my @ID =(@list[6], @list[5], @list[4], @list[3]);
my $date=(@list[10], @list[9], @list[8], @list[7]);

当我 运行 时,我收到了以下警告列表:

Useless use of array slice in void context at list line 11.
Useless use of array slice in void context at list line 11.
Useless use of array slice in void context at list line 11.
Scalar value @list[0] better written as $list[0] at list line 8.
Scalar value @list[1] better written as $list[1] at list line 9.
Scalar value @list[2] better written as $list[2] at list line 9.
Scalar value @list[6] better written as $list[6] at list line 10.
Scalar value @list[5] better written as $list[5] at list line 10.
Scalar value @list[4] better written as $list[4] at list line 10.
Scalar value @list[3] better written as $list[3] at list line 10.
Scalar value @list[10] better written as $list[10] at list line 11.
Scalar value @list[9] better written as $list[9] at list line 11.
Scalar value @list[8] better written as $list[8] at list line 11.
Scalar value @list[7] better written as $list[7] at list line 11.

所以要么这不是您的实际代码,要么您不在乎要求别人帮助您处理充满错误的代码。