中の混合配列をソート私は次のようになり、ハッシュのいくつかのキーがあります。perlの
Test21
Test1
Test4
Test2
Test13
TestA
TestB
私は作り付けのソート機能や余分なサブルーチンのいずれかを使用してそれらをソートするためにいくつかのアプローチを試みたが、私はしませんがそれが正しいと思われる。
私の所望の出力は次のようになります。
Test1
Test2
Test4
Test13
Test21
TestA
TestB
私のアプローチの一つは、このように見えた:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper qw(Dumper);
my % hash = (Test1 => "Hello",Test21 => "Somedata", Test4 => "SomeMoreData",Test2 => "EvenMore",Test13 => "AlotMore",TestA => "Nope", TestB => "EvenMoreNope");
foreach my $keys(sort byNumberandAlpha keys %hash){
print "$keys\n";
}
sub byNumberandAlpha{
my @temp_a = split("Test",$hash{$a});
my $element_a = $temp_a[1];
my @temp_b = split("Test",$hash{$b});
my $element_b = $temp_b[1];
if ($element_a =~ /[0-9]/ && $element_b =~ /[0-9]/) {
$a <=> $b;
}else{
$a cmp $b;
}
}
OUTPUT:
Use of uninitialized value $element_a in pattern match (m//) at ExpirimentalSorting.pl line 23.
Test1
Test13
Test2
Test21
Test4
TestA
TestB
これは考え出したばかりの任意のヘルプ非常に高く評価されています。
申し訳ありませんが、これは誤植でした。 – chrys