相关疑难解决方法(0)

我怎样才能在Perl中表示集合?

我想在Perl中代表一个集合.我通常做的是使用带有一些虚拟值的哈希,例如:

my %hash=();
$hash{"element1"}=1;
$hash{"element5"}=1;
Run Code Online (Sandbox Code Playgroud)

然后使用if (defined $hash{$element_name})来确定元素是否在集合中.

这是一种常见做法吗?有关改进的建议吗?

另外,我应该使用definedexists

谢谢

perl hash set

35
推荐指数
2
解决办法
3万
查看次数

在Perl中的数组中进行二进制搜索

我有一个十六进制数字数组,我需要查看其他数字并检查它们是否出现在该数组中.现在我正在使用一个foreach遍历整个阵列的循环.有没有办法通过首先对数组进行排序,然后在其上实现二进制搜索来加快速度.

目前的代码:

sub is_bad_str{
  my ($str, @keys) = @_;
  my $flag = 0;
  my ($key, $hex_num);
        if ($str =~ m/14'h([0-9a-f][0-9a-f][0-9a-f][0-9a-f])/;){ #'# fixes bad highlighting
  $hex_num = $1;
      }
  if (defined $hex_num){
    foreach $key (@keys){
        if ($hex_num =~ /\Q$key\E/i){
            $flag = 1;
            last;
        }
    }
  }
  if (($flag == 0) && (defined $hex_num)){
    return 1;#Bad str
  }else{
    return 0;#Good str
      }
}
Run Code Online (Sandbox Code Playgroud)

perl binary-search

10
推荐指数
1
解决办法
5933
查看次数

标签 统计

perl ×2

binary-search ×1

hash ×1

set ×1