perl哈希用于循环以获取数字
我有一个像这样的杂烩perl哈希用于循环以获取数字,perl,hash,Perl,Hash,我有一个像这样的杂烩 key value 1 ababababab 11 cdcdcdcdcd 21 efefefefef 31 fgfgfgfgfg 41
key value
1 ababababab
11 cdcdcdcdcd
21 efefefefef
31 fgfgfgfgfg
41 ererererer
现在我有一个数组[0]=5,数组[1]=22
我怎样才能从5-22得到字符串
abababababcdcdcdcdcdef
我计划使用foreach将密钥与5和22进行比较,但我不知道如何解决它。首先,您需要跟踪所需的哈希密钥对值。对于5和22,您需要$hash{1}、$hash{11}和$hash{21}。。小片段
if($a=1;$a<=41;$a+10)
{
if($array[0] >=$a && $array[0] <=$a+10)
{
$starting_hash_key=$a;
}
if($array[1] >=$a && $array[1] <=$a+10)
{
$Ending_hash_key=$a;
}
}
如果($a=1;$a=$a&&$array[0]=$a&&$array[1]首先你需要跟踪你需要的散列密钥对值。对于5和22,你需要$hash{1}、$hash{11}和$hash{21}..一个小片段
if($a=1;$a<=41;$a+10)
{
if($array[0] >=$a && $array[0] <=$a+10)
{
$starting_hash_key=$a;
}
if($array[1] >=$a && $array[1] <=$a+10)
{
$Ending_hash_key=$a;
}
}
if($a=1;$a=$a&&$array[0]=$a&&$array[1]my%hash=qw(
1阿巴巴
11疾病控制与预防中心
21 EFEFEF
31 FGFGFG
41埃雷雷尔
);
my@array=(5,22);
my$str=join“”,映射$hash{$\uj},排序{$a$b}键%hash;
打印
my$result=substr($str,$array[0]-1,$array[1]-$array[0]+1);
my%hash=qw(
1阿巴巴
11疾病控制与预防中心
21 EFEFEF
31 FGFGFG
41埃雷雷尔
);
my@array=(5,22);
my$str=join“”,映射$hash{$\uj},排序{$a$b}键%hash;
打印
my$result=substr($str,$array[0]-1,$array[1]-$array[0]+1);
如果希望数据像字符串一样工作,为什么要将其存储在散列中?只需将其放入字符串中:
my $string = "abababababcdcdcdcdcdefefefefeffgfgfgfgfgererererer";
或者,如果需要该散列存在以供以后使用,请从中构造一个字符串以用于此操作:
my $string = join "", map $hash{$_}, sort {$a <=> $b} keys %hash;
我相信你可以找到一种黑客方法来处理你的散列,但这不是散列的目的,这将是更好的选择和可读性。如果你想让数据像字符串一样工作,为什么要将数据存储在散列中?只需将其放在字符串中:
my $string = "abababababcdcdcdcdcdefefefefeffgfgfgfgfgererererer";
或者,如果需要该散列存在以供以后使用,请从中构造一个字符串以用于此操作:
my $string = join "", map $hash{$_}, sort {$a <=> $b} keys %hash;
我相信你可以找到一种黑客的方法来处理你的散列,但这不是散列的目的,这将是更为优化和可读的。要么输出应该是abababababbcdcdcdefefefefefeeff
要么我不理解你的问题。关键是第一个字符的位置,所以我想要位置5-22,也就是abababababababababbcDCDCDEF如果键是字符位置,则输出应该是ababababcdcdcdcdcdcdDef如果您想将数据视为单个字符串,那么为什么数据会以哈希形式存储而不是存储为单个字符串?要么输出应该是abababababcdcdcdDefefefef
,要么我不理解您的问题n、 键意味着第一个字符的位置,所以我想要位置5-22,也就是abababcdcdcdcdcdcdcdcdcdefif键是字符位置,那么输出应该是ababababadcdcdcdcdcdcdcdefif如果你想把数据当作一个字符串来处理,那么为什么它会被存储在散列中而不是一个字符串中呢?@jesseiu你可以若对你们有效,请接受这个答案。@JesseSiu若对你们有效,你们可以接受这个答案。