亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 4895 | 回復(fù): 16
打印 上一主題 下一主題

多個(gè)哈希按value降序排序時(shí),能否 只用1個(gè)子程序 [復(fù)制鏈接]

論壇徽章:
2
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-10-28 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-10-29 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-12-27 14:59 |只看該作者 |倒序?yàn)g覽
大家好,請教1個(gè)問題:
多個(gè)哈希按value降序排序時(shí),能否 只用1個(gè)子程序,而不用2個(gè)呢(如果有5個(gè)或者6個(gè)哈希時(shí),代碼變得冗余)?
比如有2個(gè)哈希,按value降序排序時(shí),可以用下面的代碼實(shí)現(xiàn):
  1. my (%courses, %courses1);
  2. sub desc_sort_subject {
  3. $courses{$b} <=> $courses{$a}; # Numeric sort descending
  4. }
  5. sub desc_sort_subject_1 {
  6. $courses1{$b} <=> $courses1{$a}; # Numeric sort descending
  7. }

  8. %courses = (
  9. "Portland Panthers" => 10,
  10. "Sunnyvale Sluggers" => 12,
  11. "Chico Wildcats" => 5,
  12. "Stevensville Tigers" => 6,
  13. "Lewiston Blazers" => 11,
  14. "Danville Terriors" => 8,
  15. );
  16. %courses1 = (
  17. "Portland Panthers" => 101,
  18. "Sunnyvale Sluggers" => 121,
  19. "Chico Wildcats" => 51,
  20. "Stevensville Tigers" => 61,
  21. "Lewiston Blazers" => 111,
  22. "Danville Terriors" => 81,
  23. );


  24. foreach my $key (sort desc_sort_subject keys %courses  ) {
  25. printf "\t%s%5d\n", $key, $courses{"$key"};
  26. }

  27. foreach my $key (sort desc_sort_subject_1 keys %courses1  ) {
  28. printf "\t%s%5d\n", $key, $courses1{"$key"};
  29. }
復(fù)制代碼

論壇徽章:
307
程序設(shè)計(jì)版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
2 [報(bào)告]
發(fā)表于 2015-12-27 15:27 |只看該作者
本帖最后由 sunzhiguolu 于 2015-12-27 16:21 編輯

回復(fù) 1# weichanghe2000
   
    our %hCourses;
    my (%courses, %courses1);
    sub desc_sort_subject {
    $hCourses{$b} <=> $hCourses{$a}; # Numeric sort descending
    }
   

    %courses = (
    "Portland Panthers" => 10,
    "Sunnyvale Sluggers" => 12,
    "Chico Wildcats" => 5,
    "Stevensville Tigers" => 6,
    "Lewiston Blazers" => 11,
    "Danville Terriors" => 8,
    );
    %courses1 = (
    "Portland Panthers" => 101,
    "Sunnyvale Sluggers" => 121,
    "Chico Wildcats" => 51,
    "Stevensville Tigers" => 61,
    "Lewiston Blazers" => 111,
    "Danville Terriors" => 81,
    );


    foreach my $key (sort desc_sort_subject keys {%hCourses = %courses}  ) {
    printf "\t%s%5d\n", $key, $hCourses{"$key"};
    }

    foreach my $key (sort desc_sort_subject keys {%hCourses = %courses1}  ) {
    printf "\t%s%5d\n", $key, $hCourses{"$key"};
    }


   

論壇徽章:
2
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-10-28 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-10-29 06:20:00
3 [報(bào)告]
發(fā)表于 2015-12-27 16:09 |只看該作者
回復(fù) 2# sunzhiguolu


你好,非常感謝回復(fù)。

我試了下,在window上面,我安裝了perl5.14,可以正確執(zhí)行。
但是我在linux:redhat5.8 系統(tǒng)自帶的perl5.8.8里面執(zhí)行會報(bào)錯(cuò)。

可以幫忙改成能夠在 perl5.8.8 里面也正確嗎?
多謝。


論壇徽章:
307
程序設(shè)計(jì)版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
4 [報(bào)告]
發(fā)表于 2015-12-27 16:11 |只看該作者
本帖最后由 sunzhiguolu 于 2015-12-27 16:13 編輯

回復(fù) 3# weichanghe2000
把錯(cuò)誤信息貼出來, 或者弄個(gè)圖片瞧瞧...
你上傳的圖片都出問題了, 沒法看!

   

論壇徽章:
2
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-10-28 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-10-29 06:20:00
5 [報(bào)告]
發(fā)表于 2015-12-27 16:17 |只看該作者
回復(fù) 4# sunzhiguolu

好的,我這邊刷新后,可以正?吹綀D片。
  1. Type of arg 1 to keys must be hash (not anonymous hash ({})) at 3.pl line 27, near "}  ) "
  2. Type of arg 1 to keys must be hash (not anonymous hash ({})) at 3.pl line 31, near "}  ) "
  3. Execution of 3.pl aborted due to compilation errors.
復(fù)制代碼
  1. This is perl, v5.8.8 built for i386-linux-thread-multi

  2. Copyright 1987-2006, Larry Wall
復(fù)制代碼

論壇徽章:
307
程序設(shè)計(jì)版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
6 [報(bào)告]
發(fā)表于 2015-12-27 16:17 |只看該作者
本帖最后由 sunzhiguolu 于 2015-12-27 16:19 編輯

回復(fù) 3# weichanghe2000
別費(fèi)事了, 這樣試下:
%hCourses = %courses;
foreach my $key (sort desc_sort_subject keys %hCourses  ) {
    printf "\t%s%5d\n", $key, $hCourses{"$key"};
    }


   

論壇徽章:
2
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-10-28 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-10-29 06:20:00
7 [報(bào)告]
發(fā)表于 2015-12-27 16:21 |只看該作者
回復(fù) 6# sunzhiguolu


多謝,這樣真的可以。
在redhat5.8的perl5.8.8里面按照value降序排序了,而且不報(bào)錯(cuò)。

再次感謝您的幫助。

論壇徽章:
145
技術(shù)圖書徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11獅子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龍
日期:2014-01-08 15:26:12技術(shù)圖書徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
8 [報(bào)告]
發(fā)表于 2015-12-27 22:04 |只看該作者
本帖最后由 jason680 于 2015-12-27 23:49 編輯

回復(fù) 1# weichanghe2000

Would you like this way ...

sub sort_by_subject_desc(+) {
  my ($rhCour) = @_;
  return sort {$rhCour->{$b} <=> $rhCour->{$a}} keys %{$rhCour};
}


foreach my $key (sort_by_subject_desc(%courses)) {
  printf "\t%s%5d\n", $key, $courses{"$key"};
}

foreach my $key (sort_by_subject_desc(%courses1)) {
  printf "\t%s%5d\n", $key, $courses1{"$key"};
}

   

評分

參與人數(shù) 1信譽(yù)積分 +10 收起 理由
sunzhiguolu + 10 向您學(xué)習(xí)了.

查看全部評分

論壇徽章:
307
程序設(shè)計(jì)版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
9 [報(bào)告]
發(fā)表于 2015-12-27 23:00 |只看該作者
回復(fù) 7# weichanghe2000
使用 Jason680 大神提供的方法吧.

   

論壇徽章:
2
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-10-28 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-10-29 06:20:00
10 [報(bào)告]
發(fā)表于 2015-12-27 23:14 |只看該作者
回復(fù) 8# jason680

非常感謝。
但是 sub sort_by_subject_desc(+) {

(+)  這里面的 + 號是什么意思哦?沒有見過這樣的用法。

請幫忙解答下哈。
多謝。
   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP