我试图将数组拆分为两个不同的数组.第一个将是@product,第二个将是@digit.
@products = qw/Diapers 759230 TrashBags 272616 ToiletPaper 267112 Condoms 987456 Pencils 231948 Pillows 898923 Crayons 123997 Sheets 231223 Paper 235442 Cups 124409 Napkins 029399/;
Run Code Online (Sandbox Code Playgroud)
打印@product的结果将是:DiapersTrashBagsToiletPaperCondomsPencilsPillowsCrayonsSheetsPaperCupsNapkins ...
假设以下两个示例如下:
use strict;
use warnings;
my @products = qw/Diapers 759230 TrashBags 272616 ToiletPaper 267112 Condoms 987456 Pencils 231948 Pillows 898923 Crayons 123997 Sheets 231223 Paper 235442 Cups 124409 Napkins 029399/;
Run Code Online (Sandbox Code Playgroud)
如果您不关心订单,请利用哈希的属性:
my %hash = @products;
my @digits = values(%hash);
my @product = keys(%hash);
Run Code Online (Sandbox Code Playgroud)
名称和特定产品的数量将在两个相同的索引@product和@digits,但该产品在顺序@product/ @digits将比顺序不同@products.
如果您希望顺序相同,请对偶数和奇数数组索引进行切片:
my @digits = @products[ grep { ! ($_ % 2) } 0 .. $#products ];
my @product = @products[ grep { $_ % 2 } 0 .. $#products ];
Run Code Online (Sandbox Code Playgroud)