我在perl中创建了一个名为@jobs的数组。它是一个数组来存放我的工作列表的哈希值。在perl中移动一个未命名的散列?
我填充它,然后排序与下面的代码另一个数组:
open(my $JOBLIST, '<:crlf', 'Jobs.conf')
or die "Unable to open file, $!";
#Store Hashes into jobs array
while (<$JOBLIST>) {
push(@jobs, {split(/:\s*|\n/)});
}
#sort jobs array by JobArrival
my @sortJobs = sort { $a->{JobArrival} <=> $b->{JobArrival} } @jobs;
如何访问哈希在@sortJobs并将其移动到其他阵列等?我理解如何推动,但我不认为这些哈希是命名的,所以我不确定我如何访问它们?
编辑清晰:
我jobs.conf文件看起来像:
JobName: A
JobSize: 100
JobArrival: 4
JobExe: 100
JobName: C
JobSize: 100
JobArrival: 2
JobExe: 100
JobName: B
JobSize: 100
JobArrival: 3
JobExe:100
JobName: D
JobSize: 100
JobArrival: 1
JobExe: 100
当我已经整理它,我的哈希值的数组看起来像这样:
[
{ JobArrival => 1, JobExe => 100, JobName => "D", JobSize => 100 },
{ JobArrival => 2, JobExe => 100, JobName => "C", JobSize => 100 },
{ JobArrival => 3, JobExe => 100, JobName => "B", JobSize => 100 },
{ JobArrival => 4, JobExe => 100, JobName => "A", JobSize => 100 },
]
什么我需要做的是从数组“D”中取出第一份工作,并将其移动到另一个数组中。一旦我完成了,我需要访问下一个,并移动,直到我已经从这个数组中移动所有的哈希。
通常我会使用哈希名称,但据我所见,这些哈希是未命名的,这使我感到困惑。
访问哈希引用本身很简单('$ sortJobs [$ some_index]')。你在问如何访问哈希中的字段? “Jobs.conf”的外观是什么? – Kenney
@Kenney我更新了主要帖子,希望它能让我的意图更清晰。 – SilentUK
有一点,谢谢 - 只是遗漏了一些关于你想放置哈希的细节 - 基于什么条件等等。我认为你可以将第一个哈希从已排序的列表中移出并放到其他地方 - 但这可能太多了不重要的? – Kenney