作者DarkKiller (System hacked)
看板perl
标题Re: [问题] 输入范围印出所属这范围的字(新手^^|||)
时间Mon Jan 1 20:00:25 2007
※ 引述《gohit (天哪..单场三轰..@o@)》之铭言:
: 对不起我是新手....真的我不知道该怎麽办....请高手帮帮忙...^^||| 谢谢
: 有一份资料是这样:
: 2 a
: 5 b
: 9 c
: 12 d
: 18 e
: 56 f
: 67 g
: 88 h
: 现在我打算输入一个数字的范围,我希望程式能够印出藉於这范围的文字,
: 如:5 =< $X <= 50 ,印出: b,c,d,e
: 请问该怎麽办呢?
: 目前只知道数字范围的写法:if....elsif 等语法
: 谢谢 ^^|||
推文说用 hash,不过 hash 不能直接取 range,要一些功夫:
%myhash = (2 => 'a', '5' => 'b', ... 中间省略... , 88 => 'h');
@range_key_10_50 = grep {10 <= $_ && $_ <= 50} keys %myhash;
不过这个方法在量很大的时候 performance 应该不会好,可以考虑 Tree 这个
module:
http://search.cpan.org/dist/Tree/
http://search.cpan.org/dist/Tree/Base.pm
不过 insert/delete 的速度没有 hash 快,你要自己考量实际的情况...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.54.119
1F:推 qrtt1:唔, 是 linear search 和 binary search 的差别吗 :P 01/01 20:26